@keyframes hintPulse{0%,to{box-shadow:inset 0 0 0 1px rgba(235,187,64,.25)}50%{box-shadow:inset 0 0 0 1px rgba(235,187,64,.6)}}@keyframes canvas-lightbox-fade{0%{opacity:0}to{opacity:1}}@keyframes result-banner-enter{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.canvas-section{margin-bottom:1rem}.canvas{background:var(--card);border:2px dashed var(--border);border-radius:var(--radius-lg);height:400px;display:flex;flex-direction:column;overflow:hidden;transition:height .25s ease,border-color .2s,background .2s,box-shadow .2s}[data-theme=light] .canvas{border-color:var(--primary)}.canvas.expanded{height:640px}.canvas.dragover{border-color:var(--primary);background:var(--primary-muted)}.canvas:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.canvas:not(.dragover):has(.canvas-body.dropzone){background:radial-gradient(120% 90%at 50% 45%,color-mix(in srgb,var(--primary) 8%,var(--card)) 0%,var(--card) 70%)}.canvas:not(.dragover):has(.canvas-body.dropzone):hover{border-color:var(--primary);background:radial-gradient(135% 105%at 50% 45%,color-mix(in srgb,var(--primary) 18%,var(--card)) 0%,color-mix(in srgb,var(--primary) 4%,var(--card)) 75%);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}[data-theme=light] .canvas:not(.dragover):has(.canvas-body.dropzone){background:radial-gradient(120% 90%at 50% 45%,color-mix(in srgb,var(--primary) 16%,var(--card)) 0%,var(--card) 70%)}[data-theme=light] .canvas:not(.dragover):has(.canvas-body.dropzone):hover{background:radial-gradient(135% 105%at 50% 45%,color-mix(in srgb,var(--primary) 26%,var(--card)) 0%,color-mix(in srgb,var(--primary) 4%,var(--card)) 75%);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 26%,transparent)}.canvas:not(.dragover):has(.canvas-body.dropzone):hover .c-drop-icon{color:var(--text-th);opacity:1}.canvas:not(.dragover):has(.canvas-body.dropzone):hover .c-drop-text{color:var(--text-th)}.canvas-bar{flex-shrink:0;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;min-height:46px;border-bottom:1px solid var(--border-subtle);background:0 0}.canvas-bar-tabs{display:flex;gap:0}.canvas-bar-actions{display:flex;gap:.25rem;align-items:center;flex-shrink:0;margin-left:auto}.c-meta+.canvas-bar-actions{margin-left:0}.editor-tab{padding:.375rem .875rem;font-size:.8125rem;font-weight:500;color:var(--border);background:0 0;border:0;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;transition:color .15s,background .15s,box-shadow .15s}.editor-tab:not(.active):not(.disabled):not(.hint):hover{color:var(--text-th);background:0 0}.editor-tab.active{color:var(--primary);background:var(--primary-muted)}.editor-tab.hint{color:var(--primary);background:rgba(235,187,64,.06);box-shadow:inset 0 0 0 1px rgba(235,187,64,.35);animation:hintPulse 2.4s ease-in-out infinite}.editor-tab.disabled{opacity:.3;cursor:not-allowed;color:var(--text-secondary)}.c-bar-action,.editor-bar-icon{border:0;border-radius:var(--radius-sm);cursor:pointer}.c-bar-action{background:0 0;color:var(--text-secondary);padding:.3rem;display:inline-flex;align-items:center;justify-content:center;line-height:0;transition:color .15s,background .15s}.c-bar-action[hidden]{display:none!important}.c-bar-action:hover{color:var(--text);background:var(--surface)}.c-bar-action svg{width:14px;height:14px}.c-bar-action.expand:hover,.c-bar-action.refresh:hover{color:var(--primary)}.c-bar-action.close{color:var(--error);border:1px solid var(--border-subtle)}.c-bar-action.close svg,.editor-bar-icon svg{width:16px;height:16px}.c-bar-action.close:hover{color:var(--bg);background:var(--error);border-color:var(--error)}.editor-bar-icon{flex-shrink:0;display:flex;padding:.25rem}.editor-bar-icon:hover{color:var(--primary);background:var(--primary-muted)}.editor-bar-icon.static{cursor:default}.editor-bar-icon,.editor-bar-icon.static:hover{color:var(--border);background:0 0}[data-theme=light] .editor-tab:not(.active){color:var(--text-secondary)}[data-theme=light] .editor-bar-icon{color:var(--text)}.c-meta{font-size:.72rem;color:var(--text-secondary);font-family:"JetBrains Mono",monospace;display:inline-flex;align-items:center;gap:.35rem;margin-left:auto;margin-right:.6rem;min-width:0;max-width:38ch;white-space:nowrap}.c-meta>span:not(.mode-tag){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.c-meta.auto::before{background:var(--success)}.c-meta.auto::before,.c-meta.invalid::before,.c-meta.locked::before{content:"";width:5px;height:5px;border-radius:50%;flex-shrink:0}.c-meta.locked::before{background:var(--warning)}.c-meta.invalid::before{background:var(--error)}.c-meta.invalid .mode-tag{color:var(--error);border-color:var(--error);background:rgba(207,102,121,.08)}.c-meta .mode-tag.site-tag{cursor:help}.c-meta .mode-tag{display:inline-flex;align-items:center;padding:.08rem .4rem;background:var(--primary-muted);color:var(--primary);border:1px solid var(--border);border-radius:4px;font-family:"Montserrat",sans-serif;font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-right:.1rem}.editor-bar-hint{font-size:.72rem;color:var(--text-secondary);font-family:"JetBrains Mono",monospace;margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip-back{gap:.35rem;padding:.3rem .65rem .3rem .5rem;border-radius:99px;color:var(--primary);font-family:inherit;font-size:.74rem;font-weight:500;cursor:pointer;margin-left:.25rem}.chip-back:hover{border-color:var(--primary);background:var(--primary-muted)}.chip-back svg{width:13px;height:13px}.canvas-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto;position:relative}.canvas-body.dropzone{align-items:center;justify-content:center;text-align:center;padding:1.5rem 2rem;gap:.5rem;cursor:pointer}.canvas-body.dropzone .c-drop-icon{color:var(--border);opacity:.7;display:inline-flex;transition:color .2s,opacity .2s}.canvas.dragover .c-drop-icon,[data-theme=light] .canvas-body.dropzone .c-drop-icon{color:var(--primary);opacity:1}.canvas-body.dropzone .c-drop-icon svg{width:48px;height:48px}.canvas-body.dropzone .c-drop-text{color:var(--text-secondary);font-size:1.3rem;line-height:1.4;transition:color .2s}.canvas-body.dropzone .c-drop-text strong{color:var(--primary);font-weight:500}.canvas.dragover .c-drop-text{color:var(--primary-hi)}.c-drop-sub{font-size:.72rem;color:var(--text-secondary);opacity:.7}.c-drop-saved{margin-top:.4rem;font-size:.7rem;color:var(--text-th);font-family:"JetBrains Mono",monospace}.wf-chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-top:.55rem;max-width:560px}.chip-wf{gap:0;max-width:none;padding:.2rem .6rem;background:var(--card);border:1px solid var(--border);border-radius:999px;color:var(--text-th);font-family:inherit;font-size:.74rem;font-weight:500;line-height:1.4;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .12s ease}.chip-wf.agent{border-style:dashed}.chip-wf:hover{border-color:var(--primary-hi);color:var(--primary-hi);background:var(--primary-muted);transform:translateY(-1px)}.chip-wf.agent:hover{border-style:solid}@media (max-width:480px){.hero h1{font-size:1.2rem}.hero .trust{font-size:.72rem}.canvas-body.dropzone .c-drop-text{font-size:.84rem;line-height:1.45}.chip-wf-rest,.drop-rest,.trust-rest{display:none}}.canvas-body.editor{padding:0}.c-textarea{flex:1;width:100%;background:0 0;border:0;color:var(--text);font-family:"JetBrains Mono",monospace;font-size:.78rem;line-height:1.7;padding:.9rem 1.1rem 1rem;resize:none;outline:0}.c-textarea:focus-visible{outline:0}.canvas-body.preview{padding:.7rem 1rem 0;overflow:hidden}.canvas-body.binary{padding:.85rem 1rem 1rem}.c-file-card,.file-preview{display:flex;min-width:0;overflow:hidden}.file-preview{flex-direction:column;gap:.5rem;flex:1;min-height:0}.c-file-card{align-items:center;gap:.7rem;padding:.85rem .95rem;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius);width:100%;box-sizing:border-box}.c-file-icon{width:42px;height:42px;background:var(--primary-muted);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;color:var(--primary);flex-shrink:0}.c-file-icon svg{width:20px;height:20px}.c-file-meta{flex:1;min-width:0}.c-file-name{font-size:.88rem;color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.c-file-info{font-size:.7rem;color:var(--text-secondary);font-family:"JetBrains Mono",monospace;margin-top:.1rem}.c-file-snippet,.click-hint .click-hint-tab,.click-hint strong{border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.c-file-snippet,.click-hint{font-family:"JetBrains Mono",monospace}.c-file-snippet{padding:.6rem .9rem;background:var(--surface);font-size:.72rem;line-height:1.55;color:var(--text-secondary);flex:1;min-height:0;overflow:hidden;position:relative;white-space:pre-wrap;mask-image:linear-gradient(to bottom,#000 0,#000 60%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 60%,transparent 100%)}.c-file-snippet::after{content:"";position:absolute;left:0;right:0;bottom:0;height:48px;background:linear-gradient(to bottom,transparent,var(--card));pointer-events:none}.click-hint{font-size:.7rem;color:var(--text-th);text-align:center;padding:0;flex-shrink:0}.click-hint .click-hint-tab,.click-hint strong{color:var(--primary);font-weight:500;padding:.05rem .4rem;background:var(--primary-muted);margin:0 .15rem;font-family:inherit;font-size:inherit;line-height:inherit;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.click-hint .click-hint-tab:hover{background:rgba(235,187,64,.16);border-color:var(--primary)}.click-hint .click-hint-tab:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.canvas-body.image{padding:.7rem 1rem .85rem}.image-view{flex:1;display:flex;align-items:stretch;justify-content:stretch;min-height:0}.c-image-frame,.c-image-frame--placeholder{background:var(--surface);width:100%;min-height:0}.c-image-frame{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0;display:block;overflow:hidden;position:relative;cursor:default}.c-image-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.c-image-frame--placeholder{cursor:zoom-in;border:1px dashed var(--border-subtle);display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s,color .15s;font-family:inherit}.c-image-placeholder-label{color:var(--text-secondary);font-size:.8rem;font-family:"JetBrains Mono",monospace;pointer-events:none;padding:.8rem 1rem;text-align:center}.c-image-frame--placeholder:hover{border-color:var(--primary);background:rgba(235,187,64,.04)}.c-image-frame--placeholder:hover .c-image-placeholder-label,.multi-row.root .row-icon{color:var(--primary)}.c-image-frame--placeholder:focus-visible{outline:2px solid var(--primary);outline-offset:2px}body.canvas-lightbox-open{overflow:hidden}.canvas-lightbox,.canvas-lightbox-inner{display:flex;align-items:center;justify-content:center}.canvas-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.82);z-index:10000;padding:3vh 3vw;animation:canvas-lightbox-fade .15s ease-out}.canvas-lightbox-inner{position:relative;max-width:100%;max-height:100%}.canvas-lightbox-img{max-width:100%;max-height:94vh;display:block;border-radius:var(--radius);box-shadow:0 10px 40px rgba(0,0,0,.5);background:var(--surface)}.canvas-lightbox-close{position:absolute;top:-14px;right:-14px;width:36px;height:36px;border-radius:50%;background:var(--card);color:var(--text);border:1px solid var(--border);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:background .15s,color .15s,border-color .15s}.canvas-lightbox-close:hover{background:var(--error);color:#fff;border-color:var(--error)}.canvas-lightbox-close svg{width:16px;height:16px}.canvas-body.multi{padding:.7rem}.multi-view{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.multi-head,.multi-head-line{align-items:center;flex-wrap:wrap}.multi-head{display:flex;gap:.5rem;margin-bottom:.55rem;flex-shrink:0}.multi-head-line{display:inline-flex;gap:.4rem}.chip-root,.chip-source{gap:0;padding:.08rem .45rem;border-radius:99px;font-weight:400}.chip-root{background:var(--primary-muted);color:var(--primary);font-size:.62rem;border:0}.chip-source{color:var(--success);font-size:.6rem}.multi-sub{font-size:.66rem;color:var(--text-secondary);font-family:"JetBrains Mono",monospace;flex-shrink:0}.multi-sub .warn,.multi-sub.warn{color:var(--warning)}.multi-sub .error,.multi-sub.error{color:var(--error)}.multi-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:.4rem;overflow-y:auto;padding-right:.15rem;align-content:start;min-height:0}@media (max-width:540px){.multi-grid{grid-template-columns:1fr}}.multi-row{display:flex;align-items:center;gap:.4rem;padding:.45rem .5rem;background:var(--surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:.75rem;min-width:0}.multi-row.root{border-color:var(--border);background:var(--primary-muted)}.multi-row.root .row-name{color:var(--primary);font-weight:500}.row-icon{flex-shrink:0;color:var(--text-th);display:inline-flex;align-items:center;line-height:0}.row-icon svg{width:13px;height:13px}.row-path{flex:1;min-width:0;display:inline-flex;align-items:baseline;gap:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-dir{color:var(--text-secondary);font-family:"JetBrains Mono",monospace;font-size:.62rem;opacity:.8;flex-shrink:0}.row-name{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-size{font-family:"JetBrains Mono",monospace;font-size:.62rem;color:var(--text-secondary);flex-shrink:0}.row-actions{display:inline-flex;gap:.1rem;flex-shrink:0}.row-btn{width:22px;height:22px;background:0 0;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);padding:0}.row-btn svg{width:11px;height:11px}.row-btn:hover{border-color:var(--border-subtle);color:var(--text)}.row-btn.set-root:hover{color:var(--primary);border-color:var(--primary)}.row-btn.del:hover{color:var(--error);border-color:var(--error)}.multi-row.root .row-btn.set-root{display:none}@media (max-width:560px){.canvas{height:300px}.canvas.expanded{height:440px}.canvas-bar{padding:.4rem .5rem;gap:.3rem;min-height:44px}.canvas-bar-actions{gap:.2rem}.editor-tab{padding:.3rem .5rem;font-size:.75rem}.c-meta{max-width:none;gap:0;margin:0 0 0 auto}.c-meta .mode-tag,.chip-back span{display:none}.c-meta>span:not(.mode-tag){display:none}.editor-bar-icon{margin-right:.2rem}.chip-back{padding:.3rem .4rem;gap:0}.c-bar-action{padding:.3rem}.editor-bar-hint{display:none}.canvas-body.dropzone .c-drop-text{font-size:.88rem;line-height:1.5}.canvas-body.preview{padding:.5rem .55rem 0}.canvas-body.binary{padding:.55rem .55rem .6rem}.canvas-body.image{padding:.5rem .55rem .55rem}.canvas-body.multi{padding:.5rem}.c-file-card{padding:.55rem .65rem;gap:.5rem}.c-file-icon{width:36px;height:36px}.c-file-icon svg{width:17px;height:17px}.c-file-name{font-size:.82rem}.c-file-info{font-size:.64rem}}.result-banner{display:flex;align-items:center;gap:.85rem;padding:.7rem .9rem;border-radius:var(--radius);margin:0 0 .85rem;font-size:.85rem;line-height:1.45;animation:result-banner-enter .45s ease-out both}@media (prefers-reduced-motion:reduce){.result-banner{animation:none}}.result-banner--warning{background:color-mix(in srgb,var(--warning) 12%,transparent);border:1px solid color-mix(in srgb,var(--warning) 55%,transparent);color:var(--text)}.result-banner--note{background:color-mix(in srgb,var(--error) 12%,transparent);border:1px solid color-mix(in srgb,var(--error) 50%,transparent);color:var(--text)}.result-banner-icon{flex-shrink:0;color:var(--error);font-size:1.25rem;line-height:1.45;align-self:flex-start}.result-banner-body{flex:1;min-width:0}.result-banner-actions{display:flex;gap:.5rem;flex-shrink:0;flex-wrap:wrap}.result-banner-cta{display:inline-flex;align-items:center;padding:.35rem .7rem;border-radius:var(--radius-sm);text-decoration:none;font-size:.8rem;font-weight:600;color:var(--text);background:0 0;border:1px solid color-mix(in srgb,var(--text) 25%,transparent);transition:background .15s ease,border-color .15s ease,color .15s ease}.result-banner-cta:hover{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);border-color:color-mix(in srgb,var(--primary) 55%,transparent)}.result-banner-cta:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.result-banner-cta--primary{color:var(--bg);background:color-mix(in srgb,var(--primary) 80%,transparent);border-color:var(--primary)}.result-banner-cta--primary:hover{background:var(--primary);color:var(--bg);border-color:var(--primary)}[data-theme=light] .result-banner-cta--primary,[data-theme=light] .result-banner-cta--primary:hover{color:#fff}@media (max-width:480px){.result-banner{flex-direction:column;align-items:flex-start;gap:.55rem}.result-banner-actions{width:100%}#bp-topbar-republish{padding:0!important;width:32px!important;gap:0!important;font-size:0!important}#bp-topbar-republish span{display:none!important}.publish-dock{display:block;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0));background:color-mix(in srgb,var(--bg) 70%,transparent);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border-top:1px solid color-mix(in srgb,var(--border) 55%,transparent);box-shadow:0-8px 24px -12px rgba(0,0,0,.55);transform:translateY(130%);opacity:0;pointer-events:none;visibility:hidden;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s ease,visibility 0s linear .3s}.publish-dock.is-visible{transform:translateY(0);opacity:1;pointer-events:auto;visibility:visible;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s ease,visibility 0s linear 0s}.publish-dock-row{display:flex;align-items:center;gap:8px}.publish-dock-mode{flex:0 0 auto;display:inline-flex;align-items:stretch;background:var(--card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;user-select:none;transition:border-color .2s ease}.publish-dock-mode[data-mode=public]{--mode-accent:var(--primary);--mode-accent-hi:var(--primary-hi);--mode-accent-soft:var(--primary-soft);--mode-accent-muted:var(--primary-muted);border-color:var(--primary-muted)}.publish-dock-mode[data-mode=private]{--mode-accent:var(--accent-blue);--mode-accent-hi:var(--accent-blue-hi);--mode-accent-soft:var(--accent-blue-soft);--mode-accent-muted:var(--accent-blue-muted);border-color:var(--accent-blue-muted)}.publish-dock-mode-divider{width:1px;align-self:stretch;background:var(--border-subtle);flex:0 0 auto}.publish-dock-seg{display:inline-flex;align-items:center;gap:.35rem;padding:7px 10px;background:0 0;border:0;cursor:pointer;font-family:Inter,system-ui,sans-serif;font-size:.74rem;font-weight:500;letter-spacing:-.005em;color:var(--text-secondary);white-space:nowrap;transition:background .2s ease,color .2s ease,font-weight .2s ease,box-shadow .2s ease}.publish-dock-seg>svg.seg-icon{width:14px;height:14px;opacity:.7;flex:0 0 auto;transition:opacity .2s ease}.badge-dock,.publish-dock-seg-label{flex:0 0 auto;font-weight:inherit}.publish-dock-mode[data-mode=private] .publish-dock-seg[data-mode=private],.publish-dock-mode[data-mode=public] .publish-dock-seg[data-mode=public]{background:var(--mode-accent-soft);color:var(--mode-accent-hi);font-weight:600;box-shadow:inset 0 0 0 2px var(--mode-accent);border-radius:var(--radius-sm)}.publish-dock-mode[data-mode=private] .publish-dock-seg[data-mode=private]>svg.seg-icon,.publish-dock-mode[data-mode=public] .publish-dock-seg[data-mode=public]>svg.seg-icon{opacity:1}.publish-dock .publish-btn{flex:1 1 auto;width:auto;margin:0}.publish-dock .publish-btn.publish-dock-btn--review .publish-dock-btn-chevron{width:15px;height:15px;margin-left:.4rem;flex:0 0 auto;opacity:.8;vertical-align:-2px}.badge-dock{display:inline-flex;align-items:center;width:auto;padding:.1rem .4rem;border-radius:999px;font-family:"JetBrains Mono",monospace;font-size:.62rem;font-weight:500;text-transform:none;letter-spacing:.01em;line-height:1.4;white-space:nowrap;border:1px solid transparent;transition:background .2s ease,border-color .2s ease,color .2s ease}.badge-dock[data-kind=index]{color:var(--success-hi);background:var(--success-soft);border-color:var(--success-muted)}.badge-dock[data-kind=noindex]{color:var(--warning);background:var(--warning-soft);border-color:var(--warning-muted)}html{scroll-padding-bottom:calc(72px + env(safe-area-inset-bottom,0))}}@media (prefers-reduced-motion:reduce) and (max-width:480px){.publish-dock{transform:none;transition:opacity .2s ease,visibility 0s linear .2s}.publish-dock.is-visible{transform:none;transition:opacity .2s ease,visibility 0s linear 0s}}