:root{--ui-bg:var(--site-background);--ui-panel:var(--site-card);--ui-panel-2:color-mix(in srgb, var(--site-muted) 55%, var(--site-card));--ui-line:var(--site-border);--ui-fg:var(--site-foreground);--ui-muted:var(--site-muted-foreground);--ui-faint:color-mix(in srgb, var(--site-muted-foreground) 72%, var(--site-background));--ui-accent:var(--site-primary);--ui-accent-soft:var(--site-accent);--ui-accent-fg:var(--site-primary-foreground);--ui-yellow:var(--site-gold);--ui-canvas:color-mix(in srgb, var(--site-muted) 70%, var(--site-background));--ui-select:var(--site-ring);--ui-canvas-select:#2f6fe0;--ui-guide:#e0367a;--ui-danger:var(--site-destructive);--ui-shadow:0 8px 24px #1a181424;--ui-radius:0;--ui-radius-data:0;--ui-radius-overlay:0;--ui-font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--ui-font);background:var(--ui-bg);color:var(--ui-fg);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}.app{grid-template-rows:52px 1fr;grid-template-columns:300px 1fr 340px;height:100%;display:grid}.topbar{background:var(--ui-panel);border-bottom:1px solid var(--ui-line);grid-column:1/-1;align-items:center;gap:6px;min-width:0;padding:0 12px;display:flex}.topbar .brand-logo{object-fit:contain;vertical-align:middle;width:30px;height:30px;margin:-4px 6px 0 0}.gate-logo{object-fit:contain;width:88px;height:88px;margin:-6px 0 10px -6px;display:block}.topbar .brand{flex:none;place-items:center;width:36px;height:36px;margin-right:2px;display:grid}.topbar .brand .brand-logo{margin:0}.topbar>*{flex:none}.topbar>.doc-switch-wrap{flex:0 auto;min-width:112px}.topbar>.spacer{flex:1 1 0;min-width:8px}.doc-switch{border:1px solid var(--ui-line);border-radius:var(--ui-radius);cursor:pointer;text-align:left;background:0 0;align-items:center;gap:8px;width:100%;min-width:0;max-width:320px;height:40px;padding:0 10px 0 12px;display:flex}.doc-switch:hover,.doc-switch.on{background:var(--ui-panel-2)}.doc-switch-text{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.doc-book,.doc-variant{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.doc-book{color:var(--ui-faint);font-size:11px;font-weight:600}.doc-variant{letter-spacing:-.01em;font-size:13px;font-weight:800}.doc-caret{color:var(--ui-faint);flex:none}.menu-text{min-width:0}.menu-text b,.menu-text span{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.btn-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.topbar .sep{background:var(--ui-line);width:1px;height:22px;margin:0 6px}.topbar .spacer{flex:1}.panel{background:var(--ui-panel);min-height:0;overflow:auto}.panel.left{border-right:1px solid var(--ui-line)}.panel.right{border-left:1px solid var(--ui-line)}.btn{border-radius:var(--ui-radius);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:6px;height:32px;padding:0 10px;transition:background .12s,opacity .12s;display:inline-flex}.btn:hover{background:var(--ui-panel-2)}.btn.icon{justify-content:center;width:32px;padding:0}.btn.on{background:var(--ui-accent-soft);color:var(--ui-accent)}.btn.outline{border-color:var(--ui-line);background:var(--ui-panel)}.btn.outline:hover{background:var(--ui-panel-2)}.btn.primary{background:var(--ui-accent);color:var(--ui-accent-fg);font-weight:600}.btn.primary:hover{background:var(--site-lime,#c8ff2e);color:var(--ui-fg)}.btn:disabled{opacity:.4;cursor:default}.btn.small{height:32px;padding:0 10px;font-size:13px}.btn.small.icon{width:32px;padding:0}.btn svg{flex:none}.btn.danger:hover{color:var(--ui-danger)}.viewport{background:var(--ui-canvas);touch-action:none;min-width:0;min-height:0;position:relative;overflow:hidden}.viewport.tool-hand,.viewport.panning{cursor:grab}.viewport.panning:active{cursor:grabbing}.viewport.tool-draw{cursor:crosshair}.world{transform-origin:0 0;position:absolute;top:0;left:0}.artboard{position:relative;overflow:hidden;box-shadow:0 2px 24px #00000029}.nv-text.is-editing{cursor:text;-webkit-user-select:text;user-select:text}.artboard,.artboard *{-webkit-user-select:none;user-select:none}.artboard .nv-text.is-editing,.artboard .nv-text.is-editing *{-webkit-user-select:text;user-select:text}.nv-img-empty{color:#6b7180;text-align:center;background:repeating-linear-gradient(45deg,#dee2e88c 0 12px,#ced3db8c 12px 24px);place-items:center;width:100%;height:100%;padding:8px;font-size:22px;font-weight:700;display:grid;overflow:hidden}.nv-img-empty>span{word-break:keep-all;overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.overlay{pointer-events:none;position:absolute;inset:0}.sel-box{border:1.5px solid var(--ui-canvas-select);pointer-events:none;position:absolute}.sel-box.child{border-style:dashed;border-width:1px}.hover-box{border:1.5px solid var(--ui-canvas-select);opacity:.7;position:absolute}.sel-frame{pointer-events:none;transform-origin:50%;position:absolute}.sel-frame .sel-box{position:absolute}.sel-edge{pointer-events:auto;cursor:move;position:absolute}.sel-edge.n,.sel-edge.s{height:12px;left:6px;right:6px}.sel-edge.n{top:-6px}.sel-edge.s{bottom:-6px}.sel-edge.e,.sel-edge.w{width:12px;top:6px;bottom:6px}.sel-edge.e{right:-6px}.sel-edge.w{left:-6px}.handle{border:1.5px solid var(--ui-canvas-select);pointer-events:auto;background:#fff;border-radius:2px;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;position:absolute;box-shadow:0 1px 3px #0000002e}.handle.wide{width:32px;margin-left:-16px}.handle:after{content:"";position:absolute;inset:-8px}.rotate-handle{pointer-events:auto;cursor:grab;width:22px;height:22px;margin-left:-11px;position:absolute;top:-30px;left:50%}.rotate-handle:active{cursor:grabbing}.rotate-handle:before{content:"";border-left:1.5px solid var(--ui-canvas-select);height:14px;position:absolute;top:16px;left:calc(50% - .75px)}.rotate-handle i{border:1.5px solid var(--ui-canvas-select);box-sizing:border-box;background:#fff;border-radius:50%;width:12px;height:12px;position:absolute;top:4px;left:4px}.size-badge{background:var(--ui-canvas-select);color:#fff;white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:0;padding:2px 6px;font-size:11px;font-weight:600;position:absolute;transform:translate(-50%)}.marquee{border:1px solid var(--ui-canvas-select);background:color-mix(in srgb, var(--ui-select) 10%, transparent);position:absolute}.guide-v,.guide-h{background:var(--ui-guide);position:absolute}.guide-v{width:1px}.guide-h{height:1px}.frame-label{color:var(--ui-muted);white-space:nowrap;pointer-events:auto;cursor:pointer;text-overflow:ellipsis;border-radius:0;max-width:220px;padding:3px 8px;font-size:11px;font-weight:600;position:absolute;overflow:hidden;transform:translate(-100%)}.frame-label:hover,.frame-label.on{color:var(--ui-canvas-select);background:var(--ui-panel)}.frame-label.hidden-frame{opacity:.5;text-decoration:line-through}.draw-preview{border:1px solid var(--ui-canvas-select);background:color-mix(in srgb, var(--ui-select) 8%, transparent);position:absolute}.text-bar{background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:var(--ui-radius-overlay);box-shadow:var(--ui-shadow);pointer-events:auto;z-index:3;align-items:center;gap:2px;padding:4px;display:flex;position:absolute}.text-bar .sw{cursor:pointer;border:1px solid #00000026;border-radius:50%;width:20px;height:20px;margin:0 2px}.panel-head{color:var(--ui-muted);background:var(--ui-panel);z-index:1;justify-content:space-between;align-items:center;padding:14px 12px 8px 16px;font-size:13px;font-weight:700;display:flex;position:sticky;top:0}.layer-row{cursor:default;border-radius:0;align-items:center;gap:6px;height:36px;margin:0 6px;padding-right:8px;display:flex;position:relative}.layer-row:hover{background:var(--ui-panel-2)}.layer-row.sel{background:var(--ui-accent-soft);color:var(--ui-fg)}.layer-row.dim .name{opacity:.45}.layer-row .caret{width:18px;height:18px;color:var(--ui-faint);flex:none;place-items:center;display:grid}.layer-row .ticon{color:var(--ui-faint);flex:none;display:grid}.layer-row.sel .ticon{color:var(--ui-accent)}.layer-row .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-row.frame .name{font-weight:700}.layer-row .acts{opacity:0;gap:0;display:flex}.layer-row:hover .acts,.layer-row .acts .pinned{opacity:1}.layer-row .acts button{cursor:pointer;width:28px;height:28px;color:var(--ui-faint);background:0 0;border:0;border-radius:0;place-items:center;display:grid}.layer-row .acts button:hover{color:var(--ui-fg);background:var(--ui-line)}.layer-row .acts .pinned{color:var(--ui-fg)}.layer-row input{border:1px solid var(--ui-select);background:var(--ui-panel);border-radius:0;flex:1;min-width:0;height:28px;padding:0 4px}.layer-row.drop-before:before,.layer-row.drop-after:after{content:"";background:var(--ui-select);height:2px;position:absolute;left:8px;right:8px}.layer-row.drop-before:before{top:-1px}.layer-row.drop-after:after{bottom:-1px}.layer-row.drop-inside{box-shadow:inset 0 0 0 2px var(--ui-select)}.section{border-bottom:1px solid var(--ui-line);padding:16px}.section h4{color:var(--ui-muted);justify-content:space-between;align-items:center;margin:0 0 12px;font-size:13px;font-weight:700;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.field{background:var(--ui-panel-2);border:1px solid #0000;border-radius:0;align-items:center;min-width:0;height:36px;display:flex}.field:focus-within{border-color:var(--ui-select)}.field .lbl{text-align:center;width:32px;color:var(--ui-faint);cursor:ew-resize;-webkit-user-select:none;user-select:none;flex:none;place-items:center;font-size:12px;display:grid}.field input,.field select{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;padding:0 8px 0 0}.field select{padding-left:8px}.row{align-items:center;gap:8px;display:flex}.row+.row,.grid2+.row,.row+.grid2,.grid2+.grid2,.grid3+.row,.row+.grid3{margin-top:8px}.color-field{background:var(--ui-panel-2);border-radius:0;flex:1;align-items:center;gap:8px;min-width:0;height:36px;padding:0 8px;display:flex}.color-field input[type=color]{cursor:pointer;background:0 0;border:0;flex:none;width:24px;height:24px;padding:0}.color-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-field input[type=color]::-webkit-color-swatch{border:1px solid #00000026;border-radius:0}.color-field input[type=text]{background:0 0;border:0;outline:none;flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.swatches{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.swatches button{cursor:pointer;border:1px solid #00000024;border-radius:0;width:24px;height:24px;padding:0}.seg{background:var(--ui-panel-2);border-radius:0;gap:2px;padding:2px;display:flex}.seg button{white-space:nowrap;cursor:pointer;height:32px;color:var(--ui-muted);background:0 0;border:0;border-radius:0;flex:1;place-items:center;padding:0 10px;display:grid}.seg button.on{background:var(--ui-panel);color:var(--ui-fg);box-shadow:0 1px 2px #0000001f}.check{cursor:pointer;color:var(--ui-muted);align-items:center;gap:8px;display:flex}.hint{color:var(--ui-faint);font-size:13px;line-height:1.6}.hint kbd{border:1px solid var(--ui-line);background:var(--ui-panel-2);border-radius:0;padding:1px 6px;font-family:inherit;font-size:12px}.icon-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.icon-grid button{aspect-ratio:1;border:1px solid var(--ui-line);background:var(--ui-panel-2);cursor:pointer;color:var(--ui-accent);border-radius:0;place-items:center;padding:6px;display:grid}.icon-grid button:hover{border-color:var(--ui-select)}.right-col{background:var(--ui-panel);border-left:1px solid var(--ui-line);flex-direction:column;min-height:0;display:flex}.right-tabs{flex:none;margin:10px 12px 0}.right-body{flex-direction:column;flex:1;min-height:0;display:flex}.right-body[hidden]{display:none}.right-body>.panel.right{border-left:0;flex:1}.viewport.agent-view{cursor:grab}.viewport.agent-view:active{cursor:grabbing}.ai-target{pointer-events:none;border:2px solid var(--site-lime,#c8ff2e);box-shadow:0 0 0 1px var(--site-foreground,#0b0b0c), inset 0 0 0 1px var(--site-foreground,#0b0b0c);background:#c8ff2e1f;animation:.45s cubic-bezier(.16,1,.3,1) both ai-target-in;position:absolute}.ai-target:after{content:"";border:2px solid var(--site-lime,#c8ff2e);animation:1.2s cubic-bezier(.16,1,.3,1) infinite ai-target-ripple;position:absolute;inset:-3px}.ai-target.delete{background:#e2553f24;border-color:#e2553f}.ai-target.delete:after{border-color:#e2553f}.ai-target-label{background:var(--site-foreground,#0b0b0c);color:#fff;white-space:nowrap;pointer-events:none;align-items:center;gap:6px;padding:4px 8px;font-size:12px;font-weight:600;animation:.45s cubic-bezier(.16,1,.3,1) both ai-target-in;display:flex;position:absolute}.ai-target-label:before{content:"";background:var(--site-lime,#c8ff2e);width:8px;height:8px}.ai-target-label.delete:before{background:#e2553f}.ai-offscreen{z-index:4;background:var(--site-foreground,#0b0b0c);color:#fff;font:inherit;pointer-events:auto;cursor:pointer;border:0;padding:7px 12px;font-size:12px;font-weight:600;animation:.45s cubic-bezier(.16,1,.3,1) both ai-offscreen-in;position:absolute;left:50%;transform:translate(-50%)}.ai-offscreen.above{top:52px}.ai-offscreen.below{bottom:16px}.ai-offscreen:hover{background:var(--site-lime,#c8ff2e);color:var(--site-foreground,#0b0b0c)}.ai-target.leaving,.ai-target-label.leaving,.ai-offscreen.leaving{animation:.45s cubic-bezier(.16,1,.3,1) forwards ai-target-out}@keyframes ai-target-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}@keyframes ai-target-ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.04)}}@keyframes ai-target-out{to{opacity:0}}@keyframes ai-offscreen-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.ai-target,.ai-target-label,.ai-offscreen{animation:none}.ai-target:after{opacity:0;animation:none}}@keyframes ai-glow{0%{filter:drop-shadow(0 0 #c8ff2e00)saturate()}to{filter:drop-shadow(0 0 14px #c8ff2ef2)drop-shadow(0 0 2px #0b0b0c80)saturate(1.08)}}.ai-focus{pointer-events:none;outline:1.5px dashed var(--site-lime,#c8ff2e);outline-offset:2px;animation:1.4s ease-in-out infinite alternate ai-focus-breathe;position:absolute;overflow:hidden}.ai-focus:before,.ai-sheen:before{content:"";background:linear-gradient(105deg,#0000 35%,#c8ff2e6b 48%,#ffffff8c 50%,#c8ff2e6b 52%,#0000 65%);animation:1.6s cubic-bezier(.16,1,.3,1) infinite ai-shimmer;position:absolute;inset:-10% -60%}.ai-sheen{position:absolute;inset:0;overflow:hidden}.ai-target.delete .ai-sheen{display:none}@keyframes ai-shimmer{0%{transform:translate(-60%)}to{transform:translate(60%)}}@keyframes ai-focus-breathe{0%{outline-color:#c8ff2e59}to{outline-color:#c8ff2e}}@media (prefers-reduced-motion:reduce){.ai-focus{animation:none}.ai-focus:before,.ai-sheen:before{display:none}.world [data-id]{animation:none!important}}.viewport.tool-comment{cursor:crosshair}.cmt-target{pointer-events:none;outline:1.5px dashed var(--site-foreground,#0b0b0c);outline-offset:1px;position:absolute;box-shadow:0 0 0 3px #c8ff2e8c}.cmt-target-label{background:var(--site-foreground,#0b0b0c);color:#fff;white-space:nowrap;pointer-events:none;padding:3px 8px;font-size:11px;font-weight:600;position:absolute}.cmt-pin{z-index:3;background:var(--site-foreground,#0b0b0c);color:#fff;pointer-events:auto;cursor:pointer;border:2px solid #fff;width:24px;height:24px;margin:-24px 0 0;font-size:12px;font-weight:800;line-height:1;animation:.35s cubic-bezier(.16,1,.3,1) both cmt-pin-in;position:absolute;box-shadow:0 2px 6px #0b0b0c4d}.cmt-pin.on,.cmt-pin:hover{background:var(--site-lime,#c8ff2e);color:var(--site-foreground,#0b0b0c);border-color:var(--site-foreground,#0b0b0c)}.cmt-pop{z-index:6;border:1px solid var(--site-foreground,#0b0b0c);pointer-events:auto;background:#fff;width:280px;padding:10px;animation:.3s cubic-bezier(.16,1,.3,1) both cmt-pin-in;position:absolute;box-shadow:0 10px 30px #0b0b0c2e}.cmt-pop-label{text-overflow:ellipsis;white-space:nowrap;margin:0 0 6px;font-size:11px;font-weight:700;overflow:hidden}.cmt-pop textarea{border:1px solid var(--ui-line,#d9d9d4);width:100%;font:inherit;resize:vertical;padding:8px;font-size:13px;display:block}.cmt-pop-actions{gap:6px;margin-top:8px;display:flex}.cmt-pop-actions span{flex:1}@keyframes cmt-pin-in{0%{opacity:0;transform:translateY(4px)scale(.92)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cmt-pin,.cmt-pop{animation:none}}.radius-handle{border:1.5px solid var(--ui-canvas-select);pointer-events:auto;cursor:grab;opacity:.85;background:#fff;border-radius:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;position:absolute;box-shadow:0 1px 3px #0000002e}.radius-handle:after{content:"";position:absolute;inset:-7px}.radius-handle:hover,.radius-handle.on{opacity:1;background:var(--site-lime,#c8ff2e);border-color:var(--site-foreground,#0b0b0c);cursor:grabbing}.text-offset-note p{color:var(--ui-muted);margin:0 0 8px;font-size:12px;line-height:1.55}.peer-sel{pointer-events:none;border:2px solid;position:absolute}.peer-tag{color:#fff;white-space:nowrap;padding:2px 7px;font-size:11px;font-weight:700;position:absolute;top:-22px;left:-2px}
