:root{--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--text-scale:1;--slate-50:#f8fafc;--slate-100:#f1f5f9;--slate-200:#e2e8f0;--slate-300:#cbd5e1;--slate-400:#94a3b8;--slate-500:#64748b;--slate-600:#475569;--slate-700:#334155;--slate-800:#1e293b;--slate-900:#0f172a;--slate-950:#0b0f17;--bg-app:#fff;--bg-surface:var(--slate-50);--bg-raised:#fff;--bg-overlay:#0f172a80;--bg-subtle:var(--slate-100);--text-primary:var(--slate-900);--text-secondary:var(--slate-600);--text-muted:var(--slate-400);--text-inverse:#fff;--border:var(--slate-200);--border-secondary:var(--slate-300);--border-focus:var(--brand);--brand:#c8045c;--brand-hover:#a0034a;--brand-active:#780237;--ring:#c8045c59}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg-app:var(--slate-950);--bg-surface:var(--slate-900);--bg-raised:var(--slate-800);--bg-overlay:#000000bf;--bg-subtle:var(--slate-800);--text-primary:#f9fafb;--text-secondary:var(--slate-300);--text-muted:var(--slate-500);--text-inverse:var(--slate-900);--border:var(--slate-800);--border-secondary:var(--slate-700);--border-focus:var(--brand);--brand:#fb006f;--brand-hover:#ff338a;--brand-active:#c8045c;--ring:#fb006f59}}[data-theme=dark],.dark,.theme-dark{--bg-app:var(--slate-950);--bg-surface:var(--slate-900);--bg-raised:var(--slate-800);--bg-overlay:#000000bf;--bg-subtle:var(--slate-800);--text-primary:#f9fafb;--text-secondary:var(--slate-300);--text-muted:var(--slate-500);--text-inverse:var(--slate-900);--border:var(--slate-800);--border-secondary:var(--slate-700);--border-focus:var(--brand);--brand:#fb006f;--brand-hover:#ff338a;--brand-active:#c8045c;--ring:#fb006f59}[data-theme=light],.light,.theme-light{--bg-app:#fff;--bg-surface:var(--slate-50);--bg-raised:#fff;--bg-overlay:#0f172a80;--bg-subtle:var(--slate-100);--text-primary:var(--slate-900);--text-secondary:var(--slate-600);--text-muted:var(--slate-400);--text-inverse:#fff;--border:var(--slate-200);--border-secondary:var(--slate-300);--border-focus:var(--brand);--brand:#c8045c;--brand-hover:#a0034a;--brand-active:#780237;--ring:#c8045c59}@font-face{font-family:Familjen Grotesk;src:url(../../../fonts/FamiljenGrotesk-Variable.woff2)format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url(../../../fonts/FamiljenGrotesk-VariableItalic.woff2)format("woff2");font-weight:300 700;font-style:italic;font-display:swap}@font-face{font-family:Google Sans;src:url(../../../fonts/GoogleSans.woff2)format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:Google Sans;src:url(../../../fonts/GoogleSans-Italic.woff2)format("woff2");font-weight:300 700;font-style:italic;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../../../fonts/instrument-sans-regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../../../fonts/instrument-sans-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../../../fonts/instrument-sans-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../../../fonts/instrument-sans-600italic.woff2)format("woff2");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../../../fonts/instrument-sans-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(../../../fonts/instrument-sans-700italic.woff2)format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:Google Sans Code;src:url(../../../fonts/google-sans-code.woff2)format("woff2");font-weight:400;font-style:regular;font-display:swap}@font-face{font-family:Google Sans Code;src:url(../../../fonts/google-sans-code-italic.woff2)format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Google Sans Code;src:url(../../../fonts/google-sans-code-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--text-scaling:1.2;--text-xs:10px;--text-sm:12px;--text-md:14px;--text-bs:1rem;--text-lg:calc(var(--text-bs) * var(--text-scaling));--text-xl:calc(var(--text-lg) * var(--text-scaling));--text-2xl:calc(var(--text-xl) * var(--text-scaling));--text-3xl:calc(var(--text-2xl) * var(--text-scaling));--text-4xl:calc(var(--text-3xl) * var(--text-scaling));--text-5xl:calc(var(--text-4xl) * var(--text-scaling))}@media (width<=721px){:root{--text-scaling:1.12}}.text-sm{font-size:var(--text-sm)}.text-md{font-size:var(--text-md)}.text-bs{font-size:var(--text-bs)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-4xl{font-size:var(--text-4xl)}.tt-c{text-transform:capitalize}.w400{font-weight:400}.w500{font-weight:500}.w700{font-weight:700}.italic{font-style:italic}.lh11{line-height:1.1}.lh125{line-height:1.25}.lh16{line-height:1.6}.col1{color:var(--text-primary)}.col2{color:var(--text-secondary)}.col3{color:var(--text-tertiary)}.sublabel{color:var(--text-tertiary);font-size:var(--text-sm);text-transform:uppercase;font-weight:600}.item-title{font-weight:600;font-size:var(--text-xl);letter-spacing:-.02rem;line-height:1.1}.item-desc{color:var(--text-tertiary)}.item-pill{font-size:var(--text-sm);color:var(--theme-color);font-style:italic;font-weight:500}article.post-article p{font-size:1.25rem;line-height:1.6}article.post-article p,article.post-article ul,article.post-article ol,article.post-article pre{margin-bottom:1.5rem}article.post-article li{margin-bottom:.75rem;font-size:1.25rem;line-height:1.6}article.post-article h2{margin-top:3rem;margin-bottom:1.5rem;font-size:1.66rem}@media (width<=720px){article.post-article p{margin-bottom:1rem;font-size:1.2rem}article.post-article li{margin-bottom:.5rem;font-size:1.2rem}}.post-header h1{font-size:var(--text-5xl);letter-spacing:-.07rem;font-weight:700}.post-header p{color:var(--text-tertiary);font-size:var(--text-lg)}.post-header .pill{background:var(--theme-color);color:#fff;text-transform:uppercase;font-size:var(--text-sm);border-radius:2px;padding:4px 6px;font-weight:500}.stickybox .text-5xl,.stickybox .text-3xl{letter-spacing:-.1rem}.onside .text-lg{letter-spacing:-.03rem}body,html{box-sizing:border-box;background-color:var(--bg-app);color:var(--text-primary);margin:0;padding:0;font-family:Instrument Sans,sans-serif;transition:background-color .15s,color .15s}:root{box-sizing:border-box;color:var(--text-primary);background-color:var(--bg-app)}*{box-sizing:border-box}.logomotif,.logotype{object-fit:contain;height:20px}button.blank{cursor:pointer;background:0 0;border:none;padding:0}a.blank{color:inherit;text-decoration:none}p,h6,h5,h4,h3,h2,h1{margin:0}button,span,pre,p,a,body{font-family:Instrument Sans,sans-serif}.icon16{width:16px;height:16px}.box,.row{display:flex}.box{flex-direction:column}.box.xcenter{align-items:center}.box.xleft{text-align:left;align-items:flex-start}.box.xright{text-align:right;align-items:flex-end}.box.ycenter{justify-content:center}.box.ytop{justify-content:flex-start}.box.ybot{justify-content:flex-end}.row{flex-direction:row}.row.wrap{flex-wrap:wrap}.row.ycenter{align-items:center}.row.ytop{align-items:flex-start}.row.ybot{align-items:flex-end}.row.xbetween{justify-content:space-between}.row.xevenly{justify-content:space-evenly}.row.xright{justify-content:flex-end}.row.xleft{justify-content:flex-start}.grid.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.w100,.wfull{width:100%}.h100,.hfull{height:100%}.min-w-0{min-width:0}.bdr-top{border-top:1px solid var(--border)}.bdr-left{border-left:1px solid var(--border)}.surface{background:var(--bg-surface);color:var(--text-primary)}.panel{background:var(--bg-raised);border:1px solid var(--border)}.trans-std{transition:background-color .15s,border-color .15s,color .15s,transform .15s}.coltheme{color:var(--brand)}.paper{border:1px solid var(--border-primary);padding:16px;transition:box-shadow .19s;box-shadow:0 1px 1px #0000,0 2px 2px #0000,0 4px 4px #0000,0 8px 8px #0000}.paper:hover{box-shadow:0 1px 1px #00000004,0 2px 2px #00000006,0 4px 4px #00000013,0 8px 8px #00000004}@media (width>=1025px){.paper{padding:24px}}.homepage-grid{display:grid}@media (width>=1025px){.homepage-grid{grid-template-columns:26% 1fr;gap:64px;height:100%}.homepage-grid .onside{height:100%}.homepage-grid .onside .stickybox{height:max-content;position:sticky;top:96px}}.paneforge-container{width:100%;height:100%;display:flex}[data-pane]{flex-direction:column;transition:flex-grow .35s cubic-bezier(.16,1,.3,1);display:flex}[data-pane-group]:has([data-pane-resizer][data-active=pointer]) [data-pane]{transition:none!important}[data-pane-resizer]{z-index:40;background-color:#0000;transition:background-color .15s;position:relative}[data-pane-resizer]:after{content:"";background-color:#0000;transition:background-color .15s;position:absolute}[data-pane-resizer][data-direction=horizontal]{cursor:col-resize;width:8px;margin:0 -4px}[data-pane-resizer][data-direction=horizontal]:after{width:2px;top:0;bottom:0;left:50%;transform:translate(-50%)}[data-pane-resizer][data-direction=vertical]{cursor:row-resize;height:8px;margin:-4px 0}[data-pane-resizer][data-direction=vertical]:after{height:2px;top:50%;left:0;right:0;transform:translateY(-50%)}[data-pane-resizer]:hover:after,[data-pane-resizer][data-active]:after{background-color:var(--text-secondary)}.outer-canvas{width:100%;height:calc(100vh - var(--header-height) - var(--footer-height));display:flex;overflow:hidden}.canvas-viewport{background:var(--background10);touch-action:none;-webkit-user-select:none;user-select:none;cursor:default;width:100%;height:100%;position:relative;overflow:hidden}.canvas-viewport.space-pan{cursor:grab}.canvas-viewport.space-pan:active{cursor:grabbing}.canvas-viewport.measuring,.canvas-viewport.draw-active{cursor:crosshair}.canvas-world{transform-origin:0 0;width:0;height:0;position:absolute;top:0;left:0}.canvas-grid{background-image:radial-gradient(circle,#e2e2e2 1px,#0000 1.1px),radial-gradient(circle,#c4c4c4 1.4px,#0000 1.5px);background-position:16px 16px,64px 64px;background-size:16px 16px,48px 48px;width:100000px;height:100000px;position:absolute;top:-50000px;left:-50000px}.canvas-item{box-sizing:border-box;background:var(--background50);border:1px solid var(--border-secondary);cursor:move;will-change:transform;padding:16px;transition:box-shadow .2s,border-color .2s;position:absolute;top:0;left:0;box-shadow:0 4px 12px #0000000d}.canvas-item:hover{box-shadow:0 6px 16px #00000014}.canvas-item.selected{border-color:var(--color10);box-shadow:0 0 0 2px #06f3,0 8px 24px #0000001a}.resize-handle{border:1.5px solid var(--accent);z-index:10;width:9px;height:9px;box-shadow:var(--elevation-1);background:#fff;border-radius:2px;position:absolute}.resize-handle.handle-nw{cursor:nwse-resize;top:-5px;left:-5px}.resize-handle.handle-ne{cursor:nesw-resize;top:-5px;right:-5px}.resize-handle.handle-se{cursor:nwse-resize;bottom:-5px;right:-5px}.resize-handle.handle-sw{cursor:nesw-resize;bottom:-5px;left:-5px}.resize-handle.handle-n{cursor:ns-resize;top:-5px;left:50%;transform:translate(-50%)}.resize-handle.handle-s{cursor:ns-resize;bottom:-5px;left:50%;transform:translate(-50%)}.resize-handle.handle-e{cursor:ew-resize;top:50%;right:-5px;transform:translateY(-50%)}.resize-handle.handle-w{cursor:ew-resize;top:50%;left:-5px;transform:translateY(-50%)}.rotate-handle{border:1.5px solid var(--accent);width:12px;height:12px;box-shadow:var(--elevation-1);cursor:grab;z-index:11;transition:transform var(--motion-fast) var(--motion-ease-spring);background:#fff;border-radius:50%;margin-left:-6px;position:absolute;top:-26px;left:50%}.rotate-handle:before{content:"";background:var(--accent);width:1px;height:14px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.rotate-handle:hover{transform:scale(1.2)}.rotate-handle:active{cursor:grabbing}.marquee-box{background:var(--accent-soft);border:1px solid var(--accent);pointer-events:none;z-index:12;position:absolute}.canvas-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-primary);z-index:20;background:#ffffffd9;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;top:16px;left:16px;box-shadow:0 4px 20px #00000014}.canvas-panel .btn-icon{border:1px solid var(--border-secondary);cursor:pointer;color:var(--text-primary);background:0 0;padding:6px 12px;font-weight:500}.canvas-panel .btn-icon:hover{background:var(--background20)}.sidebarR,.sidebarL,.agent{height:calc(100vh - var(--header-height) - var(--footer-height));background:var(--background20);z-index:400}.btn-icon{justify-content:center;align-items:center;gap:var(--size4);height:28px;padding:0 var(--size12);background:var(--surface-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), border-color var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), transform var(--motion-fast) var(--motion-ease-standard);flex:1;font-weight:500;display:inline-flex}.btn-icon:hover:not(:disabled){background:var(--state-hover);border-color:var(--border-tertiary);color:var(--text-primary)}.btn-icon:active:not(:disabled){background:var(--state-active);transform:translateY(1px)}.btn-icon:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.btn-icon:disabled{opacity:.45;cursor:not-allowed}.design-block{box-sizing:border-box;will-change:transform;-webkit-user-select:none;user-select:none;transition:box-shadow var(--motion-fast) var(--motion-ease-standard);position:absolute;top:0;left:0}.design-block.selected{box-shadow:0 0 0 1.5px var(--accent), 0 0 0 5px var(--accent-soft);outline:none}.design-block.locked{cursor:not-allowed;opacity:.8}.design-block.locked .resize-handle{display:none}.design-block.drop-target{outline:2px dashed var(--color20)!important;background:var(--accent-softer)!important}.type-text{cursor:text;background:0 0;border:1px dashed #0000;padding:4px}.type-text:hover{border-color:var(--border-tertiary)}.type-image{overflow:hidden}.type-image .block-content-image{background-position:50%;background-size:cover;width:100%;height:100%}.type-card{cursor:grab}.type-card:active{cursor:grabbing}.type-section .block-content-section-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;position:absolute;top:-18px;left:4px}.type-frame .block-content-frame-label{color:var(--text-primary);font-size:12px;font-weight:600;position:absolute;top:-20px;left:0}@keyframes menu-pop-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.canvas-context-menu{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);box-shadow:var(--elevation-3), inset 0 1px 0 #fff9;z-index:1000;transform-origin:0 0;min-width:184px;animation:menu-pop-in var(--motion-base) var(--motion-ease-out);background:#ffffffe6;border:1px solid #ffffff80;flex-direction:column;padding:6px;display:flex;position:fixed}.context-menu-item{border-radius:var(--radius-sm);color:var(--text-primary);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:var(--size16);transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);background:0 0;border:none;width:100%;padding:7px 10px;font-size:13px;display:flex}.context-menu-item:hover{background:var(--accent-soft);color:var(--accent)}.context-menu-item:disabled{color:var(--text-tertiary);cursor:not-allowed}.context-menu-item:disabled:hover{background:0 0}.context-menu-item.header-item{color:var(--text-secondary);border-bottom:1px solid var(--border-primary);cursor:default;margin-bottom:4px;padding-bottom:6px;font-weight:600}.context-menu-item.header-item:hover{color:var(--text-secondary);background:0 0}.context-menu-item.danger-item{color:#e5484d}.context-menu-item.danger-item:hover{color:#e5484d;background:#e5484d1a}.context-menu-divider{background:var(--border-primary);height:1px;margin:4px -6px}.layer-tree-container{flex-direction:column;flex:1;width:100%;padding-top:16px;display:flex;overflow-y:auto}.layer-row{cursor:pointer;color:var(--text-primary);transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), box-shadow var(--motion-fast) var(--motion-ease-standard);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:4px;font-size:14px;display:flex}.layer-row:hover{background:var(--state-hover)}.layer-row:hover .layer-actions{opacity:1}.layer-row:active{background:var(--state-active)}.layer-row.selected{background:var(--accent-soft);color:var(--accent);box-shadow:inset 2px 0 0 var(--accent)}.layer-row.selected .layer-name{font-weight:600}.layer-row.selected .layer-icon,.layer-row.selected .layer-action-btn{color:var(--accent)}.layer-row.selected .layer-actions{opacity:1}.layer-icon{width:16px;color:var(--text-secondary);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.layer-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.layer-actions{opacity:0;align-items:center;gap:4px;transition:opacity .1s;display:flex}.layer-action-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;padding:2px 4px;font-size:11px;transition:background .1s;display:flex}.layer-action-btn:hover{background:#00000014}.layer-action-btn.active{color:var(--color20)}.canvas-ruler-corner{background:var(--background20);border-right:1px solid var(--border-primary);border-bottom:1px solid var(--border-primary);z-index:30;width:16px;height:16px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0}.canvas-ruler-h{background:var(--background20);border-bottom:1px solid var(--border-primary);z-index:29;height:16px;position:absolute;top:0;left:16px}.canvas-ruler-v{background:var(--background20);border-right:1px solid var(--border-primary);z-index:29;width:16px;position:absolute;top:16px;left:0}.canvas-floating-controls{-webkit-backdrop-filter:blur(16px)saturate(180%);border-radius:var(--radius-lg);box-shadow:var(--elevation-float), inset 0 1px 0 #ffffff80;z-index:20;pointer-events:auto;background:#ffffffd1;border:1px solid #fff9;align-items:center;gap:6px;padding:4px 6px;display:flex;position:absolute;bottom:16px;right:16px}.canvas-floating-controls .btn-floating{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), transform var(--motion-base) var(--motion-ease-spring);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.canvas-floating-controls .btn-floating:hover{background:var(--state-hover);color:var(--text-primary)}.canvas-floating-controls .btn-floating:active{background:var(--state-active);transform:scale(.9)}.canvas-floating-controls .btn-floating:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.canvas-floating-controls .btn-floating:disabled{opacity:.5;cursor:not-allowed}.canvas-floating-controls .zoom-display{color:var(--text-secondary);border-radius:var(--radius-sm);text-align:center;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;min-width:44px;height:24px;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);font-size:11px;font-weight:600}.canvas-floating-controls .zoom-display:hover{background:var(--state-hover);color:var(--text-primary)}.canvas-dock{-webkit-backdrop-filter:blur(16px)saturate(180%);border-radius:var(--radius-lg);box-shadow:var(--elevation-float), inset 0 1px 0 #ffffff80;z-index:20;pointer-events:auto;background:#ffffffd1;border:1px solid #fff9;align-items:center;gap:2px;padding:4px 6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.dock-btn{border-radius:var(--radius-sm);width:32px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), transform var(--motion-base) var(--motion-ease-spring);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.dock-btn:hover{background:var(--state-hover);color:var(--text-primary)}.dock-btn:active{transform:scale(.9)}.dock-btn:focus-visible{outline:2px solid var(--accent-ring);outline-offset:1px}.dock-btn.active{background:var(--accent-soft);color:var(--accent)}.dock-separator{background:var(--border-primary);width:1px;height:18px;margin:0 4px}.dock-tool-group{align-items:center;display:flex;position:relative}.dock-chevron{border-radius:var(--radius-sm);width:14px;height:28px;color:var(--text-tertiary);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);background:0 0;border:none;justify-content:center;align-items:center;margin-left:-2px;padding:0;display:flex}.dock-chevron:hover{background:var(--state-hover);color:var(--text-primary)}.canvas-shape-dropdown{-webkit-backdrop-filter:blur(20px)saturate(180%);border-radius:var(--radius-lg);box-shadow:var(--elevation-3), inset 0 1px 0 #fff9;z-index:30;min-width:140px;animation:menu-pop-in var(--motion-base) var(--motion-ease-out);transform-origin:bottom;background:#ffffffe6;border:1px solid #ffffff80;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.shape-option{border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);background:0 0;border:none;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.shape-option:hover{background:var(--accent-soft);color:var(--accent)}.shape-option.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.shape-icon{justify-content:center;align-items:center;width:18px;height:18px;display:flex}.shape-label{font-size:13px}.shape-svg{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.block-content-shape-label{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12px;font-weight:600;position:absolute;top:-20px;left:0;overflow:hidden}.canvas-draw-preview{pointer-events:none;z-index:15;background:#6366f10d;border:1.5px dashed #6366f199;border-radius:2px;position:absolute}.block-content-text.editing{outline:2px solid var(--accent);outline-offset:-1px;cursor:text;-webkit-user-select:text;user-select:text;border-radius:2px;min-width:20px;min-height:1em}.layer-row{position:relative}.layer-row.drag-over-inside{outline:1.5px dashed var(--color10);background:#0066ff26!important}.layer-row.drag-over-before:before{content:"";background:var(--color10);z-index:5;height:2px;position:absolute;top:0;left:0;right:0}.layer-row.drag-over-after:after{content:"";background:var(--color10);z-index:5;height:2px;position:absolute;bottom:0;left:0;right:0}.layer-row.dragging{opacity:.35}.layer-collapse-btn{width:14px;height:14px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:8px;transition:transform .1s;display:flex}.layer-collapse-btn:hover{color:var(--text-primary)}.layer-collapse-btn:not(.has-children){cursor:default;pointer-events:none}.canvas-svg-overlay{pointer-events:none;z-index:15;width:100000px;height:100000px;position:absolute;top:-50000px;left:-50000px}.align-guide{stroke:#ff3b30;stroke-width:1.5px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.inspector-align-toolbar{gap:var(--size4);padding:var(--size8) 0;border-bottom:1px solid var(--border-subtle);margin-bottom:var(--size8);flex-wrap:wrap;display:flex}.btn-align{border:1px solid var(--border-default);background:var(--surface-input);border-radius:var(--size4);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);justify-content:center;align-items:center;display:flex}.btn-align:hover:not(:disabled){background:var(--state-hover);color:var(--text-primary)}.btn-align:disabled{opacity:.4;cursor:not-allowed}.btn-align:focus-visible{outline:2px solid var(--theme-color);outline-offset:-2px}.user-guide-hit{stroke:#0000;stroke-width:8px;fill:none;pointer-events:stroke}.user-guide-hit.type-h{cursor:ns-resize}.user-guide-hit.type-v{cursor:ew-resize}.user-guide-visual{stroke:#ff3b30;stroke-width:1px;pointer-events:none;vector-effect:non-scaling-stroke}.user-guide-visual.dragging{stroke:#06f}.inspector-section{gap:var(--size8);padding:var(--size12) 0;border-bottom:1px solid var(--border-primary);flex-direction:column;display:flex}.inspector-section .section-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.styling-grid{gap:var(--size8);grid-template-columns:repeat(2,1fr);display:grid}.styling-grid.four-cols{grid-template-columns:repeat(4,1fr)}.input-container{gap:var(--size4);flex-direction:column;display:flex}.input-container label{color:var(--text-muted);text-transform:uppercase;font-size:10px}.input-container input,.input-container select{background:var(--surface-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:4px var(--size8);font-size:var(--text-md);color:var(--text-primary);box-sizing:border-box;width:100%;height:28px;transition:border-color var(--motion-fast) var(--motion-ease-standard), box-shadow var(--motion-fast) var(--motion-ease-standard), background var(--motion-fast) var(--motion-ease-standard);outline:none}.input-container input:hover,.input-container select:hover{border-color:var(--border-tertiary)}.input-container input:focus,.input-container select:focus{border-color:var(--theme-color);box-shadow:0 0 0 3px var(--accent-soft)}.color-swatch-container{align-items:center;gap:var(--size8);display:flex;position:relative}.color-swatch{border:1px solid var(--border-default);cursor:pointer;width:24px;height:24px;transition:transform var(--motion-base) var(--motion-ease-spring), box-shadow var(--motion-fast) var(--motion-ease-standard);border-radius:50%;position:relative;box-shadow:inset 0 0 0 1px #0000000d}.color-swatch:hover{box-shadow:inset 0 0 0 1px #0000000d, 0 0 0 3px var(--accent-soft);transform:scale(1.12)}.color-picker-popover{background:var(--surface-popover);-webkit-backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--elevation-3);z-index:2000;gap:var(--size8);transform-origin:100% 0;min-width:200px;animation:menu-pop-in var(--motion-base) var(--motion-ease-out);flex-direction:column;padding:12px;display:flex;position:fixed}.btn-close-popover{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:4px;transition:background .15s,color .15s;display:flex}.btn-close-popover:hover{background:var(--background20);color:var(--text-primary)}.design-color-picker{gap:var(--size8);flex-direction:column;width:200px;display:flex}.design-color-picker__spectrum{border:1px solid var(--border-subtle);cursor:crosshair;-webkit-user-select:none;user-select:none;border-radius:4px;width:100%;height:140px;position:relative;overflow:hidden}.design-color-picker__cursor{pointer-events:none;background:0 0;border:2px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;transform:translate(-5px,-5px);box-shadow:0 0 0 1px #0000004d}.design-color-picker__hue{width:100%}.design-color-picker__hue input[type=range]{-webkit-appearance:none;cursor:pointer;background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);border-radius:5px;outline:none;width:100%;height:10px}.design-color-picker__hue input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:1px solid #00000026;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0000004d}.design-color-picker__controls{gap:var(--size8);flex-direction:column;display:flex}.design-color-picker__mode-row{justify-content:space-between;align-items:center;gap:var(--size8);display:flex}.design-color-picker__mode-switch{background:var(--surface-input);border:1px solid var(--border-default);border-radius:4px;display:flex;overflow:hidden}.design-color-picker__mode-switch button{color:var(--text-tertiary);cursor:pointer;letter-spacing:.03em;background:0 0;border:none;padding:3px 8px;font-size:10px;font-weight:600;transition:background .15s,color .15s}.design-color-picker__mode-switch button:hover{color:var(--text-primary)}.design-color-picker__mode-switch button.active{background:var(--theme-color);color:#fff}.design-color-picker__eyedropper{border:1px solid var(--border-default);cursor:pointer;color:var(--text-secondary);background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:3px;transition:background .15s,color .15s;display:flex}.design-color-picker__eyedropper:hover{background:var(--background20);color:var(--text-primary)}.design-color-picker__hex{align-items:center;gap:var(--size8);display:flex}.design-color-picker__hex .swatch-preview{border:1px solid var(--border-default);border-radius:3px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #0000000d}.design-color-picker__hex input{background:var(--surface-input);border:1px solid var(--border-default);color:var(--text-primary);font-size:11px;font-family:var(--font-mono);text-transform:uppercase;border-radius:4px;outline:none;flex:1;height:22px;padding:3px 6px}.design-color-picker__hex input:focus{border-color:var(--theme-color)}.design-color-picker__rgb-fields{gap:6px;display:flex}.design-color-picker__field{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.design-color-picker__field input{background:var(--surface-input);border:1px solid var(--border-default);width:100%;color:var(--text-primary);font-size:11px;font-family:var(--font-mono);text-align:center;-moz-appearance:textfield;border-radius:4px;outline:none;height:22px;padding:3px 4px}.design-color-picker__field input::-webkit-inner-spin-button{-webkit-appearance:none}.design-color-picker__field input::-webkit-outer-spin-button{-webkit-appearance:none}.design-color-picker__field input:focus{border-color:var(--theme-color)}.design-color-picker__field span{color:var(--text-tertiary);letter-spacing:.05em;text-transform:uppercase;font-size:9px;font-weight:600}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes cmdk-panel-in{0%{opacity:0;transform:translateY(-8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.canvas-viewport.measuring{cursor:crosshair}.measure-line,.measure-cap{stroke:#e5484d;stroke-width:1.25px;vector-effect:non-scaling-stroke}.measure-label{fill:#e5484d;paint-order:stroke;stroke:#fff;stroke-width:3px;vector-effect:non-scaling-stroke;font-family:var(--font-mono);font-weight:700}.selection-toolbar{z-index:25;-webkit-backdrop-filter:blur(16px)saturate(180%);border-radius:var(--radius-md);box-shadow:var(--elevation-float), inset 0 1px 0 #ffffff80;animation:fade-in var(--motion-fast) var(--motion-ease-out);background:#ffffffe6;border:1px solid #fff9;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.selection-toolbar.flip{transform:translate(-50%,10px)}.sel-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), transform var(--motion-base) var(--motion-ease-spring);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sel-btn:hover{background:var(--state-hover);color:var(--text-primary)}.sel-btn:active{transform:scale(.9)}.sel-btn.danger:hover{color:#e5484d;background:#e5484d1f}.sel-divider{background:var(--border-primary);width:1px;height:18px;margin:0 2px}.cmdk-backdrop{z-index:3000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--motion-fast) var(--motion-ease-standard);background:#12161f47;justify-content:center;align-items:flex-start;padding-top:14vh;display:flex;position:fixed;inset:0}.cmdk-panel{background:var(--surface-popover);-webkit-backdrop-filter:blur(20px)saturate(180%);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:560px;max-width:calc(100vw - 32px);max-height:62vh;box-shadow:var(--elevation-3);animation:cmdk-panel-in var(--motion-base) var(--motion-ease-out);flex-direction:column;display:flex;overflow:hidden}.cmdk-search{align-items:center;gap:var(--size8);border-bottom:1px solid var(--border-subtle);color:var(--text-tertiary);padding:12px 14px;display:flex}.cmdk-search input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:15px}.cmdk-search input::placeholder{color:var(--text-muted)}.cmdk-search kbd{font-size:10px;font-family:var(--font-mono);color:var(--text-tertiary);border:1px solid var(--border-default);background:var(--surface-input);border-radius:4px;padding:1px 5px}.cmdk-list{padding:6px;overflow-y:auto}.cmdk-group{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:8px 10px 4px;font-size:10px;font-weight:600}.cmdk-item{justify-content:space-between;align-items:center;gap:var(--size16);text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:8px 10px;font-size:13px;display:flex}.cmdk-item.active{background:var(--accent-soft);color:var(--accent)}.cmdk-item:disabled{opacity:.4;cursor:not-allowed}.cmdk-shortcut{color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono)}.cmdk-item.active .cmdk-shortcut{color:var(--accent)}.cmdk-empty{text-align:center;color:var(--text-muted);padding:28px;font-size:13px}.code-panel{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.code-panel-head{justify-content:space-between;align-items:center;gap:var(--size8);border-bottom:1px solid var(--border-primary);padding:10px 12px;display:flex}.code-tabs{background:var(--surface-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.code-tab{color:var(--text-tertiary);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard);background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:600}.code-tab:hover{color:var(--text-primary)}.code-tab.active{background:var(--background10);color:var(--accent);box-shadow:var(--elevation-1)}.code-copy{align-items:center;gap:var(--size4);border:1px solid var(--border-default);background:var(--surface-input);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:background var(--motion-fast) var(--motion-ease-standard), color var(--motion-fast) var(--motion-ease-standard), border-color var(--motion-fast) var(--motion-ease-standard);padding:4px 10px;font-size:11px;font-weight:600;display:flex}.code-copy:hover{background:var(--state-hover);color:var(--text-primary)}.code-copy.done{color:#2f9e44;border-color:#2f9e4466}.code-output{font-family:var(--font-mono);color:var(--text-secondary);white-space:pre;tab-size:2;flex:1;margin:0;padding:12px 14px;font-size:11.5px;line-height:1.55;overflow:auto}.code-output code{font-family:inherit}.code-foot{border-top:1px solid var(--border-primary);color:var(--text-muted);text-align:center;padding:6px 12px;font-size:10px}@media (prefers-reduced-motion:reduce){.canvas-context-menu,.color-picker-popover,.selection-toolbar,.cmdk-backdrop,.cmdk-panel{animation:none}.design-block,.resize-handle,.color-swatch,.btn-icon,.btn-floating,.layer-row,.context-menu-item,.canvas-floating-controls .zoom-display,.inspector-section input,.inspector-section select,.sel-btn,.cmdk-item,.code-tab{transition-duration:.01ms}.resize-handle:hover,.color-swatch:hover,.sel-btn:active{transform:none}}.drawer-backdrop{z-index:999;-webkit-backdrop-filter:blur(2px);background:#12161f6b;position:fixed;inset:0}.drawer-panel{background:var(--background10,#fff);z-index:1000;border-top-left-radius:var(--radius-lg,12px);border-top-right-radius:var(--radius-lg,12px);flex-direction:column;width:100%;display:flex;position:fixed;bottom:0;left:0;overflow:hidden;box-shadow:0 -8px 30px #12161f29}.drawer-panel.resizing{-webkit-user-select:none;user-select:none;cursor:row-resize}.drawer-resize{cursor:row-resize;touch-action:none;flex:none;justify-content:center;align-items:center;height:14px;display:flex;position:relative}.drawer-resize:before{content:"";background:var(--border-tertiary,#999);border-radius:999px;width:36px;height:4px;transition:background .15s,width .15s}.drawer-resize:hover:before{background:var(--text-secondary,#707070);width:48px}.drawer-header{border-bottom:1px solid var(--border-primary,#eee);justify-content:space-between;align-items:center;padding:.5rem 1rem 1rem;display:flex}.drawer-close{border-radius:var(--radius-sm,6px);width:28px;height:28px;color:var(--text-secondary,#707070);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;transition:background .15s,color .15s;display:flex}.drawer-close:hover{background:var(--state-hover,#0000000d);color:var(--text-primary,#212121)}.drawer-content{-webkit-overflow-scrolling:touch;flex:1;padding:1rem;overflow-y:auto}.bdr{border:1px solid var(--border)}.bdr-bottom{border-bottom:1px solid var(--border)}.bdr-right{border-right:1px solid var(--border)}.bold{font-weight:700}.box{flex-direction:column;display:flex}.gap12{gap:12px}.gap16{gap:16px}.gap2{gap:2px}.gap32{gap:32px}.gap4{gap:4px}.gap8{gap:8px}.grid{grid-auto-flow:row;display:grid}.grow{flex-grow:1}.h100{height:100%}.lh15{line-height:1.5}.marginbot12{margin-bottom:12px}.marginbot24{margin-bottom:24px}.marginbot32{margin-bottom:32px}.maxh448{max-height:448px}.min-h-0{min-height:0}.minh128{min-height:128px}.minw260{min-width:260px}.pad12{padding:12px}.pad16{padding:16px}.pad32{padding:32px}.pad8{padding:8px}.padbot2{padding-bottom:2px}.padbot8{padding-bottom:8px}.padleft8{padding-left:8px}.padright8{padding-right:8px}.padtop12{padding-top:12px}.padtop2{padding-top:2px}.padtop4{padding-top:4px}.padtop8{padding-top:8px}.radius12{border-radius:12px}.radius8{border-radius:8px}.radiusfull{border-radius:9999px}.row{flex-direction:row;display:flex}.shrink-0{flex-shrink:0}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-5xl{font-size:var(--text-5xl)}.text-xs{font-size:var(--text-xs)}.tt-u{text-transform:uppercase}.w100{width:100%}.w600{font-weight:600}.width260{width:260px}.wrap{flex-wrap:wrap}:root{--shiki-dark-bg:#1e1e1e;--shiki-dark:#d4d4d4;--shiki-dark-accent:#569cd6;--shiki-dark-accent-active:#007acc;--shiki-dark-border:#333;--shiki-dark-font-style:normal;--shiki-dark-font-weight:400;--shiki-dark-text-decoration:none;--shiki-copy-success-color:#4caf50}@media (prefers-color-scheme:light){:root{--shiki-dark-bg:#f5f5f5;--shiki-dark:#333;--shiki-dark-accent:#06c;--shiki-dark-accent-active:#004c99;--shiki-dark-border:#ccc;--shiki-dark-font-style:normal;--shiki-dark-font-weight:400;--shiki-dark-text-decoration:none;--shiki-copy-success-color:#4caf50}}.mdsvex-shiki{background-color:var(--shiki-dark-bg);border:1px solid var(--shiki-dark-border);border-radius:5px;padding:12px 20px;position:relative}.mdsvex-shiki pre{position:relative;overflow:auto}.mdsvex-shiki .header{pointer-events:none;background-color:#0000;align-items:center;gap:.5em;display:flex}.mdsvex-shiki .header>*{pointer-events:auto;transition:opacity .2s;position:relative}.mdsvex-shiki .header .language{color:var(--shiki-dark);opacity:.7;align-items:center;gap:.5em;margin-left:auto;font-size:.875em;display:flex}.mdsvex-shiki .header .language .icon{flex-shrink:0;width:16px;height:16px}.mdsvex-shiki .header .copy{color:var(--shiki-dark);cursor:pointer;opacity:1;background-color:#0000;border:none;justify-content:center;align-items:center;display:flex}.mdsvex-shiki .header .copy .icon{width:16px;height:16px}.mdsvex-shiki .header .copy .check-icon,.mdsvex-shiki .header .copy.copied .copy-icon{display:none}.mdsvex-shiki .header .copy.copied .check-icon{color:var(--shiki-copy-success-color);display:block}.mdsvex-shiki .header .copy:hover{color:var(--shiki-dark-accent)}.mdsvex-shiki .header .copy:active{color:var(--shiki-dark-accent-active)}.mdsvex-shiki .header .path{color:var(--shiki-dark);opacity:.7;white-space:nowrap;align-items:center;gap:.25em;max-width:calc(100% - 100px);font-size:.875em;display:flex;overflow:auto hidden}.mdsvex-shiki .header .path .icon{flex-shrink:0;width:14px;height:14px}.mdsvex-shiki .header .path .path-segment{align-items:center;gap:.25em;display:flex}.mdsvex-shiki .header .path .path-separator{color:var(--shiki-dark);opacity:.5;margin:0 .125em}.mdsvex-shiki .header .path .path-segment.collapsed{cursor:help}.mdsvex-shiki:hover .header .path,.mdsvex-shiki:focus-within .header .path{opacity:1}
