:root{--paper: #faf7f0;--paper-deep: #f2ede3;--paper-edge: #e7e0d3;--ink: #2b2620;--ink-soft: #6a6157;--ink-faint: #a89d8e;--dot: rgba(43, 38, 32, .14);--surface: #fffdf9;--surface-veil: rgba(255, 253, 249, .9);--line: rgba(43, 38, 32, .13);--line-strong: rgba(43, 38, 32, .22);--accent: #c9633c;--accent-soft: rgba(201, 99, 60, .14);--accent-ring: rgba(201, 99, 60, .34);--danger: #b23a4e;--shadow-sm: 0 1px 2px rgba(43, 38, 32, .07), 0 3px 8px rgba(43, 38, 32, .06);--shadow-md: 0 2px 6px rgba(43, 38, 32, .09), 0 14px 32px rgba(43, 38, 32, .11);--shadow-lg: 0 4px 12px rgba(43, 38, 32, .12), 0 30px 60px rgba(43, 38, 32, .16);--ease: cubic-bezier(.22, .61, .36, 1);font-family:Inter,system-ui,-apple-system,sans-serif;font-feature-settings:"cv05" 1,"ss01" 1;color:var(--ink)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}@supports (height: 100dvh){html,body,#root{height:100dvh}}body{background:var(--paper);overscroll-behavior:none;-webkit-font-smoothing:antialiased;touch-action:manipulation}button{font:inherit;color:inherit;border:none;background:none;cursor:pointer}kbd{font-family:inherit;font-size:10.5px;font-weight:650;letter-spacing:.02em;color:var(--ink-soft);background:#2b262012;border:1px solid rgba(43,38,32,.06);border-bottom-width:2px;border-radius:5px;padding:1.5px 5px}.app{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:grid;grid-template-rows:56px 38px 1fr;grid-template-columns:1fr;height:100%;position:relative}.app.with-pane{grid-template-columns:1fr 380px}.app.with-rail{grid-template-columns:244px 1fr}.app.with-rail.with-pane{grid-template-columns:244px 1fr 380px}.sheet-tab{position:fixed;right:max(14px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:61;height:48px;min-width:78px;padding:0 20px;border-radius:24px;background:var(--accent);color:#fff;font-size:14px;font-weight:640;box-shadow:0 8px 22px #2b262042;transition:transform .18s var(--ease),bottom .22s var(--ease)}.sheet-tab:active{transform:scale(.96)}.app.rail-open .sheet-tab{bottom:calc(min(62dvh,560px) + 12px + env(safe-area-inset-bottom));background:var(--surface);color:var(--ink-soft);box-shadow:0 6px 18px #2b262033}.more-wrap{position:relative}.more-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70}.more-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:71;display:flex;flex-direction:column;min-width:178px;padding:6px;border-radius:12px;border:1px solid var(--paper-edge);background:var(--surface);box-shadow:var(--shadow-lg)}.more-menu button{padding:11px 12px;border-radius:8px;text-align:left;font-size:13.5px;color:var(--ink-soft)}.more-menu button:hover{background:var(--paper-deep);color:var(--ink)}.app .stage{grid-row:3;grid-column:1}.app.with-rail .stage{grid-column:2}.top-bar{grid-column:1 / -1}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 18px;background:linear-gradient(180deg,#fffdf9eb,#faf7f0c7);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid var(--paper-edge);z-index:40}.brand{display:flex;align-items:center;gap:10px;font-weight:660;letter-spacing:-.015em}.brand .mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;color:var(--accent);background:linear-gradient(160deg,#fff5ec,#fbe6d8);border:1px solid rgba(201,99,60,.22);box-shadow:var(--shadow-sm)}.brand .name{font-size:15px}.brand .byline{margin-left:-4px;font-size:11.5px;font-weight:560;color:var(--ink-faint);text-decoration:none;white-space:nowrap;transition:color .14s var(--ease)}.brand .byline:hover{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.brand .count{margin-left:6px;padding-left:12px;border-left:1px solid var(--line);font-size:11.5px;font-weight:500;color:var(--ink-faint);font-variant-numeric:tabular-nums}@media (max-width: 720px){.brand .count{display:none}}@media (max-width: 520px){.brand .byline{display:none}}.top-actions{display:flex;align-items:center;gap:8px}.segment{display:flex;align-items:center;padding:2px;gap:2px;background:#2b26200d;border:1px solid var(--line);border-radius:11px}.segment button{min-width:34px;height:28px;padding:0 9px;border-radius:8px;font-size:12.5px;font-weight:560;color:var(--ink-soft);transition:background .13s var(--ease),color .13s var(--ease),transform .13s var(--ease)}.segment button:hover:not(:disabled){background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.segment button:active:not(:disabled){transform:translateY(1px)}.segment button:disabled{opacity:.35;cursor:default}.pill{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 13px;border-radius:11px;border:1px solid var(--line);background:var(--surface);font-size:12.5px;font-weight:560;color:var(--ink-soft);box-shadow:var(--shadow-sm);transition:color .13s var(--ease),border-color .13s var(--ease),transform .13s var(--ease)}.pill:hover{color:var(--ink);border-color:var(--line-strong)}.pill:active{transform:translateY(1px)}.pill.is-active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.pill.is-active kbd{background:#ffffff29;color:var(--paper)}.pill.ghost{width:32px;padding:0;justify-content:center;font-weight:650}.stage{position:relative;overflow:hidden}.canvas{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#fdfbf6 0%,var(--paper) 46%,var(--paper-deep) 100%);touch-action:none;cursor:default}.canvas.is-panning{cursor:grab}.canvas.is-panning:active{cursor:grabbing}.canvas.is-panning .world,.canvas.is-panning .marquee{pointer-events:none}.canvas.is-connecting{cursor:crosshair}.paper-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--dot) 1.05px,transparent 1.05px);pointer-events:none}.canvas:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.42;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.28'/%3E%3C/svg%3E");mix-blend-mode:multiply}.canvas:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 180px #2b262012}.world{position:absolute;top:0;left:0;transform-origin:0 0;will-change:transform}.edge-layer{position:absolute;overflow:visible;pointer-events:none}.edge-line{fill:none;stroke-width:2;stroke-linecap:round;opacity:.82;transition:stroke-width .14s var(--ease),opacity .14s var(--ease)}.edge-hit{fill:none;stroke:transparent;stroke-width:20;pointer-events:stroke;cursor:pointer}.edge-flow{fill:none;stroke-width:5.5;stroke-linecap:round;stroke-dasharray:.1 22;opacity:0;transition:opacity .14s var(--ease)}@keyframes edge-flow-drift{to{stroke-dashoffset:-22.1}}.edge.is-hovered .edge-flow,.edge.is-selected .edge-flow{opacity:.95;animation:edge-flow-drift 1.1s linear infinite}.world.is-live .edge-flow{animation-play-state:paused}.edge-ends{animation:pop-in .14s var(--ease)}.edge-end-glow,.edge-end-ring{fill:none;pointer-events:none}.edge-end-glow{stroke-width:7;opacity:.16}.edge-end-ring{stroke-width:2.4;stroke-dasharray:5 4;opacity:.5}.edge-end.is-to .edge-end-glow{opacity:.26}.edge-end.is-to .edge-end-ring{stroke-width:3;stroke-dasharray:none;opacity:1}@media (prefers-reduced-motion: reduce){.edge.is-hovered .edge-flow,.edge.is-selected .edge-flow{animation:none;stroke-dasharray:4 12}.edge-ends{animation:none}}.edge.is-hovered .edge-line{stroke-width:2.8;opacity:1}.edge.is-selected .edge-line{stroke-width:3.4;opacity:1}.edge.is-selected .edge-hit{stroke:var(--accent-soft)}.edge-label rect{fill:var(--surface);stroke:var(--line)}.edge-label text{font-size:12px;font-weight:560;fill:var(--ink-soft);pointer-events:none}.edge-label{pointer-events:auto;cursor:text}.edge-insert{pointer-events:auto;cursor:pointer;animation:pop-in .14s var(--ease)}.edge-insert circle{fill:var(--surface);stroke:var(--accent);stroke-width:1.6;filter:drop-shadow(0 2px 5px rgba(43,38,32,.16))}.edge-insert path{stroke:var(--accent);stroke-width:1.8;stroke-linecap:round}.edge-insert:hover circle{fill:var(--accent)}.edge-insert:hover path{stroke:#fff}.edge-preview{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:6 7;opacity:.85;animation:dash-drift .7s linear infinite}@keyframes dash-drift{to{stroke-dashoffset:-26}}.edge-label-input{width:100%;height:26px;border-radius:8px;border:1.5px solid var(--accent);background:var(--surface);padding:0 8px;font-size:12px;font-weight:560;text-align:center;outline:none;font-family:inherit;box-shadow:var(--shadow-sm)}.node{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;cursor:default;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 1px rgba(43,38,32,.09)) drop-shadow(0 6px 14px rgba(43,38,32,.08));transition:transform .23s var(--ease),width .17s var(--ease),height .17s var(--ease),filter .16s var(--ease);animation:node-in .2s var(--ease)}.world.is-live .node{transition:width .17s var(--ease),height .17s var(--ease)}@keyframes node-in{0%{opacity:0;filter:drop-shadow(0 0 0 rgba(0,0,0,0))}}@keyframes pop-in{0%{opacity:0;transform:scale(.8)}}.node .shape-outline{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.node-text{position:relative;z-index:1;padding:0 14px;text-align:center;line-height:1.45;pointer-events:none;max-width:100%;word-break:break-word}.node-text code{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.88em;background:#2b262017;padding:1px 4px;border-radius:4px}.node:hover{filter:drop-shadow(0 2px 3px rgba(43,38,32,.1)) drop-shadow(0 10px 22px rgba(43,38,32,.1))}.node.is-selected:before,.node.is-connect-target:hover:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:18px;pointer-events:none}.node.is-selected:before{border:1.5px solid var(--accent);box-shadow:0 0 0 4px var(--accent-soft);animation:pop-in .15s var(--ease)}.node.is-connect-target:hover:before{border:1.5px dashed var(--accent)}.node.is-editing:before{border-style:solid}.node-input{position:relative;z-index:2;width:100%;height:100%;border:none;outline:none;resize:none;background:transparent;text-align:center;font:inherit;color:inherit;line-height:1.45;padding:12px 14px;overflow:hidden;caret-color:var(--accent)}.pin-badge{position:absolute;top:-9px;right:-9px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;font-size:8px;color:var(--accent);background:var(--surface);border:1px solid var(--accent-ring);box-shadow:var(--shadow-sm);opacity:0;transition:opacity .14s var(--ease);z-index:4}.node:hover .pin-badge,.node.is-selected .pin-badge{opacity:1}.lock-badge{position:absolute;top:-9px;right:-9px;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;color:var(--ink-soft, #6b6155);background:var(--surface);border:1px solid var(--line, rgba(0, 0, 0, .16));box-shadow:var(--shadow-sm);z-index:5}.node.is-locked{cursor:default}.node.is-locked .handles,.node.is-locked .resize-frame{display:none}.node.is-locked.is-selected:after{border-style:dashed}.handles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.handle{position:absolute;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1.4px solid var(--accent-ring);box-shadow:var(--shadow-sm);opacity:0;transform:scale(.6);transition:opacity .14s var(--ease),transform .14s var(--ease),background .14s var(--ease);pointer-events:auto;z-index:5}.node:hover .handle,.node.is-selected .handle{opacity:1;transform:scale(1)}.handle-plus:before,.handle-plus:after{content:"";position:absolute;background:var(--accent);border-radius:2px;transition:background .14s var(--ease)}.handle-plus:before{width:9px;height:1.6px;left:5.2px;top:8.8px}.handle-plus:after{width:1.6px;height:9px;left:8.8px;top:5.2px}.handle:hover{background:var(--accent);transform:scale(1.25);border-color:var(--accent)}.handle:hover .handle-plus:before,.handle:hover .handle-plus:after{background:#fff}.handle:hover .handle-up{top:-26px;left:calc(50% - 10px)}.handle-up .handle-down{bottom:-26px;left:calc(50% - 10px)}.handle-down .handle-left{left:-26px;top:calc(50% - 10px)}.handle-left .handle-right{right:-26px;top:calc(50% - 10px)}.handle-right .slash-menu{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);width:244px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-lg);padding:5px;z-index:20;font-size:13px;font-weight:500;font-style:normal;color:var(--ink);animation:rise-in .15s var(--ease)}.slash-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:9px;text-align:left}.slash-menu button.is-active{background:var(--accent-soft)}.slash-token{font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;color:var(--accent)}.slash-label{flex:1}.slash-hint{font-size:11px;color:var(--ink-faint)}@keyframes rise-in{0%{opacity:0;transform:translate(-50%,6px)}}.marquee{position:absolute;border:1.5px solid var(--accent);background:#c9633c14;border-radius:5px;pointer-events:none}.empty-state{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;animation:node-in .4s var(--ease)}.empty-state h2{margin:0 0 8px;font-size:19px;font-weight:620;letter-spacing:-.01em}.empty-state p{margin:4px 0;font-size:13.5px;color:var(--ink-soft)}.empty-state .muted{color:var(--ink-faint);font-size:12.5px}.floating-toolbar{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:2px;padding:5px;background:var(--surface-veil);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);z-index:30;white-space:nowrap;animation:toolbar-in .16s var(--ease)}@keyframes toolbar-in{0%{opacity:0;transform:translate(-50%,calc(-100% + 8px))}}.floating-toolbar button{display:inline-flex;align-items:center;gap:6px;min-width:30px;height:30px;padding:0 7px;border-radius:9px;font-size:12.5px;color:var(--ink-soft);justify-content:center;transition:background .13s var(--ease),color .13s var(--ease)}.floating-toolbar button:hover{background:#2b262012;color:var(--ink)}.floating-toolbar button.is-active{background:var(--accent-soft);color:var(--ink)}.floating-toolbar button.danger:hover{background:#b23a4e24;color:var(--danger)}.floating-toolbar .divider{width:1px;height:20px;margin:0 4px;background:var(--line)}.floating-toolbar .combo{padding:0 8px 0 5px}.combo-preview{display:grid;place-items:center;width:30px;height:21px}.combo-swatch{width:17px;height:17px;border-radius:50%;border:1.5px solid}.combo-label{font-weight:560;color:var(--ink)}.edge-glyph{font-size:15px;line-height:1}.quick-menu{position:absolute;transform:translate(-50%);width:268px;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-lg);padding:9px;z-index:32;animation:rise-in .15s var(--ease)}.quick-menu header{display:flex;align-items:baseline;justify-content:space-between;padding:1px 4px 8px;font-size:12px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}.quick-menu .menu-tip{font-size:10.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink-faint)}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px}.menu-grid button{display:flex;align-items:center;gap:7px;padding:6px 7px;border-radius:9px;font-size:12.5px;color:var(--ink-soft);transition:background .13s var(--ease),color .13s var(--ease)}.menu-grid button:hover{background:#2b26200f;color:var(--ink)}.menu-grid button.is-active{background:var(--accent-soft);color:var(--ink)}.menu-shape{display:grid;place-items:center;width:34px;height:24px}.menu-swatch{width:18px;height:18px;border-radius:50%;border:1.5px solid}.menu-label{flex:1;text-align:left}.quick-menu footer{padding:8px 5px 2px;font-size:11.5px;font-weight:560}.hint-bar{position:absolute;left:50%;bottom:16px;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:8px 14px;background:var(--surface-veil);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-sm);font-size:11.5px;color:var(--ink-faint);z-index:25;pointer-events:none;max-width:calc(100% - 40px);overflow:hidden}.hint{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.zoom-widget{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:1px;padding:4px;background:var(--surface-veil);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm);z-index:25}.zoom-widget button{min-width:28px;height:26px;padding:0 6px;border-radius:8px;font-size:13px;color:var(--ink-soft);transition:background .13s var(--ease),color .13s var(--ease)}.zoom-widget button:hover{background:#2b262012;color:var(--ink)}.zoom-widget .zoom-value{font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;min-width:46px}.zoom-widget .divider{width:1px;height:16px;margin:0 4px;background:var(--line)}.text-pane{grid-row:3;grid-column:-2 / -1;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--paper-edge);z-index:35;box-shadow:-14px 0 40px #2b26200d}.text-pane header{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--paper-edge)}.pane-title{font-size:11.5px;font-weight:680;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint)}.text-pane textarea{flex:1;border:none;outline:none;resize:none;padding:15px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px;line-height:1.75;color:var(--ink);background:transparent;-moz-tab-size:2;tab-size:2}.text-pane footer{display:flex;flex-direction:column;gap:5px;padding:13px 15px;border-top:1px solid var(--paper-edge);background:#2b262005;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;color:var(--ink-faint)}.palette-backdrop,.help-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b262042;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:60;display:flex;justify-content:center;align-items:flex-start;padding-top:14vh;animation:fade-in .14s var(--ease)}@keyframes fade-in{0%{opacity:0}}.help-backdrop{align-items:center;padding-top:0}.command-palette{width:min(560px,92vw);background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow-lg);overflow:hidden;animation:rise-plain .17s var(--ease)}@keyframes rise-plain{0%{opacity:0;transform:translateY(10px)}}.command-palette input{width:100%;border:none;outline:none;padding:17px 19px;font-size:15px;background:transparent;border-bottom:1px solid var(--paper-edge);font-family:inherit}.command-palette ul{list-style:none;margin:0;padding:7px;max-height:48vh;overflow-y:auto}.command-palette button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:9px 12px;border-radius:10px;font-size:13.5px}.command-palette button.is-active{background:var(--accent-soft)}.command-palette .hint{font-size:11.5px;color:var(--ink-faint)}.help-card{width:min(880px,94vw);max-height:86vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-lg);padding:22px 26px 28px;animation:rise-plain .18s var(--ease)}.help-card header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.help-card h2{font-size:18px;margin:0 0 3px;letter-spacing:-.01em}.help-card header p{margin:0;font-size:13px;color:var(--ink-soft)}.gesture-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:10px;margin-bottom:22px}.gesture-grid figure{margin:0;padding:12px 14px 13px;background:linear-gradient(150deg,#fff8f2,#fbf3e9);border:1px solid var(--paper-edge);border-radius:14px}.gesture-art{width:100%;height:52px;display:block;margin-bottom:8px}.gesture-grid figcaption{display:flex;flex-direction:column;gap:2px;font-size:12.5px}.gesture-grid figcaption b{font-weight:640;color:var(--ink)}.gesture-grid figcaption span{color:var(--ink-soft)}.help-rows h3{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 10px}.help-rows dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:7px 28px}.help-rows dl>div{display:flex;align-items:baseline;gap:10px;font-size:13px}.help-rows dt{min-width:176px;font-weight:620;color:var(--ink)}.help-rows dd{margin:0;color:var(--ink-soft)}.help-credit{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-faint)}.help-credit b{font-weight:640;color:var(--ink)}.help-credit a{padding:4px 10px;border-radius:8px;border:1px solid var(--line);color:var(--ink-soft);text-decoration:none;font-weight:600;transition:color .14s var(--ease),border-color .14s var(--ease)}.help-credit a:hover{color:var(--accent);border-color:var(--accent-ring)}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px 30px}.help-grid h3{display:flex;align-items:baseline;gap:8px;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 8px}.help-grid h3 em{font-size:10.5px;font-style:normal;letter-spacing:0;text-transform:none;color:var(--accent)}.help-grid dl{margin:0;display:flex;flex-direction:column;gap:6px}.help-grid dl>div{display:flex;align-items:baseline;gap:10px;font-size:13px}.help-grid dt{min-width:148px;font-weight:620;color:var(--ink)}.help-grid dd{margin:0;color:var(--ink-soft)}.node.is-dragging{pointer-events:none;filter:drop-shadow(0 6px 10px rgba(43,38,32,.16)) drop-shadow(0 18px 34px rgba(43,38,32,.14))}.ghost-node{position:absolute;top:0;left:0;display:grid;place-items:center;border:1.6px dashed var(--accent);border-radius:14px;background:#c9633c12;color:var(--accent);font-size:12px;font-weight:580;letter-spacing:.01em;pointer-events:none;z-index:3;animation:pop-in .13s var(--ease)}.edge.is-splice-target .edge-line{stroke-width:4;opacity:1;stroke-dasharray:3 7;animation:dash-drift .6s linear infinite}.combo-caret{font-size:9px;color:var(--ink-faint);margin-left:-1px}.context-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55}.context-menu{position:absolute;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-lg);padding:8px;animation:rise-plain .13s var(--ease)}.context-row{display:flex;align-items:center;gap:2px;padding:2px}.context-row.shapes{display:grid;grid-template-columns:repeat(4,1fr)}.context-row.swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:3px;padding:6px 4px}.context-row button{display:grid;place-items:center;height:30px;border-radius:8px;color:var(--ink-soft);transition:background .12s var(--ease)}.context-row button:hover{background:#2b262012}.context-row button.is-active{background:var(--accent-soft)}.context-row .swatch{width:20px;height:20px;border-radius:50%;border:1.5px solid;justify-self:center}.context-row .swatch.is-active{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--accent)}.context-row.text-styles,.context-row.edge-kinds{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;border-top:1px solid var(--paper-edge);margin-top:4px;padding-top:7px}.context-knobs{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--paper-edge);margin-top:4px;padding-top:6px}.context-knobs:empty{display:none}.context-option{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:8px;font-size:11.5px;color:var(--ink-soft)}.context-option>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-option input[type=range]{flex:0 0 92px;width:92px;height:3px;accent-color:var(--accent);cursor:pointer}.context-option.is-auto input[type=range]{accent-color:var(--ink-faint);opacity:.5}.option-readout{flex:none;min-width:30px;text-align:right;font-size:10.5px;font-weight:640;color:var(--ink-faint);font-variant-numeric:tabular-nums}.context-option:not(.is-auto) .option-readout{color:var(--ink)}.option-reset{flex:none;padding:2px 6px;border-radius:6px;font-size:10px;font-weight:620;color:var(--ink-faint);border:1px solid var(--paper-edge)}.option-reset:hover{color:var(--accent);border-color:var(--accent-ring)}.context-option>span.is-pinned:after{content:"";display:inline-block;width:4px;height:4px;margin-left:5px;border-radius:50%;background:var(--accent);vertical-align:middle}.pin-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);flex:none}.option-switch.is-mixed{background:linear-gradient(90deg,var(--accent) 50%,var(--paper-edge) 50%)}.option-switch.is-mixed i{transform:translate(6px)}.swap-more{font-size:10.5px;font-weight:640;color:var(--ink-faint);border:1px dashed var(--paper-edge)!important}.swap-more:hover{color:var(--accent);border-color:var(--accent-ring)!important}.menu-search{width:100%;margin:0 0 8px;padding:6px 9px;border-radius:8px;border:1px solid var(--paper-edge);background:var(--paper);font:inherit;font-size:12px;color:var(--ink);outline:none}.menu-search:focus{border-color:var(--accent-ring)}.quick-menu.is-knobs{width:250px}.quick-menu.is-knobs .context-knobs{border-top:none;margin-top:0;padding-top:0}.floating-toolbar .combo .pin-dot{margin-left:-2px}.option-count{flex:none;display:flex;align-items:center;gap:1px}.option-count button{width:20px;height:20px;border-radius:6px;font-size:13px;font-weight:700;line-height:1;color:var(--ink-soft);border:1px solid var(--paper-edge)}.option-count button:hover:not(:disabled){border-color:var(--accent-ring);color:var(--accent)}.option-count button:disabled{opacity:.35;cursor:default}.option-count b{min-width:24px;text-align:center;font-size:11.5px;font-weight:640;color:var(--ink);font-variant-numeric:tabular-nums}.option-switch{flex:none;width:30px;height:17px;padding:2px;border-radius:9px;background:var(--paper-edge);transition:background .13s var(--ease)}.option-switch i{display:block;width:13px;height:13px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px #2b262040;transition:transform .13s var(--ease)}.option-switch.is-on{background:var(--accent)}.option-switch.is-on i{transform:translate(13px)}.knob-reset{margin-top:3px;padding:5px 6px;border-radius:7px;font-size:11px;color:var(--ink-faint);text-align:left}.knob-reset:hover{color:var(--accent)}.context-row.devices{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;border-top:1px solid var(--paper-edge);margin-top:4px;padding-top:7px}.context-row.devices button{padding:5px 2px;border-radius:7px;font-size:10.5px;font-weight:570;color:var(--ink-faint);border:1px solid var(--paper-edge)}.context-row.devices button:hover,.context-row.devices button.is-active{color:var(--accent);border-color:var(--accent-ring)}.context-list{display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--paper-edge);margin-top:6px;padding-top:6px}.context-list button{text-align:left;padding:7px 9px;border-radius:9px;font-size:13px;color:var(--ink);transition:background .12s var(--ease),color .12s var(--ease)}.context-list button:hover{background:#2b26200f}.context-list button.danger{color:var(--danger)}.context-list button.danger:hover{background:#b23a4e1f}.page-bar{grid-row:2;grid-column:1 / -1;display:flex;align-items:center;gap:12px;padding:0 14px;background:#f7f3ebd1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--paper-edge);z-index:38}.page-bar-label{font-size:10.5px;font-weight:680;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint);flex-shrink:0}.page-tabs{display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none}.page-tabs::-webkit-scrollbar{display:none}.page-tab{display:flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 9px;border-radius:9px;border:1px solid transparent;font-size:12px;font-weight:550;color:var(--ink-soft);cursor:pointer;white-space:nowrap;transition:background .13s var(--ease),color .13s var(--ease),border-color .13s var(--ease)}.page-tab:hover{background:#2b26200f;color:var(--ink)}.page-tab.is-active{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:var(--shadow-sm)}.page-name{max-width:160px;overflow:hidden;text-overflow:ellipsis}.page-rename{width:110px;border:none;outline:none;background:transparent;font:inherit;color:var(--ink);border-bottom:1.5px solid var(--accent)}.page-tools{display:flex;align-items:center;gap:1px;margin-left:2px}.page-tools button{width:19px;height:19px;border-radius:6px;font-size:10px;color:var(--ink-faint);display:grid;place-items:center}.page-tools button:hover{background:#2b262017;color:var(--ink)}.page-tools button:last-child:hover{background:#b23a4e24;color:var(--danger)}.page-add{height:26px;padding:0 11px;border-radius:9px;border:1px dashed var(--line-strong);font-size:11.5px;font-weight:570;color:var(--ink-faint);white-space:nowrap;transition:color .13s var(--ease),border-color .13s var(--ease),background .13s var(--ease)}.page-add:hover{color:var(--accent);border-color:var(--accent-ring);background:var(--accent-soft)}input,textarea,.help-card,.crash-card pre,.export-menu,.text-pane{-webkit-user-select:text;user-select:text}button:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.crash-screen{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:24px;background:var(--paper)}.crash-card{width:min(520px,92vw);padding:26px 28px 24px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg)}.crash-card h1{margin:0 0 6px;font-size:19px;letter-spacing:-.01em}.crash-card p{margin:0 0 14px;font-size:13.5px;color:var(--ink-soft)}.crash-card pre{margin:0 0 18px;padding:11px 13px;border-radius:11px;background:#2b26200d;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;color:var(--ink-soft);white-space:pre-wrap;word-break:break-word;max-height:160px;overflow:auto}.crash-actions{display:flex;flex-wrap:wrap;gap:8px}.pill.ghost-wide{background:transparent;box-shadow:none}.mode-switch{display:flex;gap:2px;padding:3px;background:#2b26200f;border:1px solid var(--line);border-radius:12px}.mode-switch button{padding:5px 15px;border-radius:9px;font-size:12.5px;font-weight:570;color:var(--ink-soft);transition:background .14s var(--ease),color .14s var(--ease),box-shadow .14s var(--ease)}.mode-switch button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.rail{grid-row:3;grid-column:1;overflow-y:auto;padding:14px 12px 20px;background:var(--surface);border-right:1px solid var(--paper-edge);box-shadow:14px 0 40px #2b26200a;z-index:30}.rail section+section{margin-top:16px}.rail h3{margin:0 0 8px 4px;font-size:10.5px;font-weight:680;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-faint)}.rail-devices{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.rail-devices button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:9px 4px 7px;border-radius:10px;font-size:10.5px;color:var(--ink-soft);border:1px solid transparent;transition:background .13s var(--ease),border-color .13s var(--ease),color .13s var(--ease)}.rail-devices button:hover{background:#2b26200d;border-color:var(--line);color:var(--ink)}.device-glyph{width:18px;border-radius:3px;border:1.4px solid var(--ink-faint);background:#fff}.rail-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px}.rail-grid button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 6px 7px;border-radius:11px;border:1px solid transparent;font-size:11px;color:var(--ink-soft);transition:background .13s var(--ease),border-color .13s var(--ease),color .13s var(--ease),transform .13s var(--ease)}.rail-grid button:hover{background:linear-gradient(160deg,#fffaf5,#fdf3ea);border-color:var(--line);color:var(--ink);transform:translateY(-1px)}.widget-preview{display:block}.rail footer{margin-top:18px;padding:10px 10px 11px;border-radius:11px;background:#c9633c14;font-size:11.5px;line-height:1.5;color:var(--ink-soft)}.canvas.is-wireframe{background:radial-gradient(120% 90% at 50% 0%,#fbfaf7,#f4f1ea 55%,#ece7dd)}.design-node{position:absolute;top:0;left:0;transition:transform .18s var(--ease),width .15s var(--ease),height .15s var(--ease)}.world.is-live .design-node{transition:none}.design-node .widget-art,.design-node.is-frame .frame-surface,.design-node.is-frame .frame-title{opacity:var(--art-opacity, 1)}.design-node.is-tuned.is-selected .widget-art{outline:1px dashed var(--accent-ring);outline-offset:2px}.edit-hint{position:absolute;left:0;top:calc(100% + 6px);padding:3px 7px;border-radius:6px;background:#2b2620;color:#f6f1e8;font-size:10.5px;white-space:nowrap;pointer-events:none;z-index:12}.design-node.is-frame .frame-surface{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--frame-radius, 18px);background:#fff;border:1.5px solid #ded6c9;box-shadow:0 2px 8px #2b26200f,0 22px 60px #2b26201a}.frame-title{position:absolute;left:2px;bottom:calc(100% + 8px);font-size:12.5px;font-weight:620;color:var(--ink-soft);white-space:nowrap;cursor:text}.design-node.is-frame.is-selected .frame-surface{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft),0 22px 60px #2b26201f}.design-node.is-frame.is-selected .frame-title{color:var(--accent)}.design-node.is-widget{cursor:default}.widget-art{display:block;pointer-events:none}.design-node.is-widget:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:8px;border:1.5px solid transparent;pointer-events:none;transition:border-color .12s var(--ease)}.design-node.is-widget:hover:after{border-color:#c9633c59}.design-node.is-widget.is-selected:after{border-color:var(--accent)}.design-node.is-dragging{pointer-events:none}.design-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;width:100%;height:100%;border:1.5px solid var(--accent);border-radius:8px;outline:none;resize:none;padding:6px 10px;font:inherit;font-size:14px;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-sm)}.design-input.is-frame-input{inset:auto 0 calc(100% + 4px) 0;height:30px;padding:4px 8px;font-size:12.5px;font-weight:600}.resize-frame{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.resize-handle{position:absolute;width:10px;height:10px;background:var(--surface);border:1.5px solid var(--accent);border-radius:3px;pointer-events:auto;z-index:6}.resize-nw{left:-6px;top:-6px;cursor:nwse-resize}.resize-n{left:calc(50% - 5px);top:-6px;cursor:ns-resize}.resize-ne{right:-6px;top:-6px;cursor:nesw-resize}.resize-e{right:-6px;top:calc(50% - 5px);cursor:ew-resize}.resize-se{right:-6px;bottom:-6px;cursor:nwse-resize}.resize-s{left:calc(50% - 5px);bottom:-6px;cursor:ns-resize}.resize-sw{left:-6px;bottom:-6px;cursor:nesw-resize}.resize-w{left:-6px;top:calc(50% - 5px);cursor:ew-resize}.size-readout{position:absolute;left:50%;top:calc(100% + 8px);transform:translate(-50%);padding:2px 7px;border-radius:6px;background:var(--accent);color:#fff;font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.snap-guide{position:absolute;top:0;left:0;background:#e0407a;pointer-events:none;z-index:9}.snap-guide.is-vertical{width:1px}.snap-guide.is-horizontal{height:1px}.insert-popover{position:fixed;width:288px;background:var(--surface);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-lg);padding:8px;z-index:45;animation:rise-plain .13s var(--ease)}.insert-popover input{width:100%;border:none;outline:none;padding:7px 9px 10px;font-size:13.5px;font-family:inherit;background:transparent;border-bottom:1px solid var(--paper-edge)}.insert-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;max-height:268px;overflow-y:auto;padding-top:7px}.insert-grid button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border-radius:10px;font-size:10.5px;color:var(--ink-soft)}.insert-grid button.is-active{background:var(--accent-soft);color:var(--ink)}.context-row.widgets{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.context-row.widgets button{height:34px}.frame-name{padding:0 8px;font-size:12.5px}.frame-size{font-size:11px;color:var(--ink-faint);font-variant-numeric:tabular-nums;padding-right:4px}.rail-search{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:4px;margin-bottom:12px;padding:2px;background:var(--paper);border:1px solid var(--line);border-radius:11px}.rail-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;padding:7px 8px;font-family:inherit;font-size:12.5px;color:var(--ink)}.rail-clear{width:24px;height:24px;border-radius:7px;color:var(--ink-faint);font-size:11px}.rail-clear:hover{background:#2b262012;color:var(--ink)}.rail-tabs{display:flex;gap:2px;margin:14px 0 10px;padding:3px;background:#2b26200d;border-radius:10px}.rail-tabs button{flex:1;padding:5px 2px;border-radius:7px;font-size:10.5px;font-weight:570;color:var(--ink-faint);transition:background .13s var(--ease),color .13s var(--ease)}.rail-tabs button:hover{color:var(--ink)}.rail-tabs button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.rail-grid button{touch-action:none;cursor:grab}.rail-grid button:active{cursor:grabbing}.rail-drag-chip{position:fixed;z-index:70;transform:translate(-50%,-50%) rotate(-2deg);display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 12px 7px;background:var(--surface);border:1px solid var(--accent-ring);border-radius:12px;box-shadow:var(--shadow-lg);font-size:10.5px;font-weight:600;color:var(--ink-soft);pointer-events:none;opacity:.96}.rail-drop{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:8}.drop-ghost{position:absolute;top:0;left:0;transform-origin:0 0;display:grid;place-items:center;border:1.6px dashed var(--accent);border-radius:10px;background:#c9633c14;color:var(--accent);font-size:12px;font-weight:600}.drop-ghost.is-inside{background:#c9633c24;border-style:solid}.frame-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:13px;color:var(--ink-faint);pointer-events:none}.frame-empty .muted{font-size:11.5px;opacity:.75}.floating-toolbar button:disabled{opacity:.3;cursor:default}.link-handle{position:absolute;right:-30px;top:calc(50% - 11px);width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1.4px solid var(--accent-ring);color:var(--accent);box-shadow:var(--shadow-sm);opacity:0;transform:scale(.7);transition:opacity .14s var(--ease),transform .14s var(--ease),background .14s var(--ease),color .14s var(--ease);z-index:7}.design-node.is-widget:hover .link-handle,.design-node.is-widget.is-selected .link-handle{opacity:1;transform:scale(1)}.link-handle:hover{background:var(--accent);color:#fff;border-color:var(--accent);transform:scale(1.15)}.edge.is-flow .edge-line{stroke-dasharray:9 6;opacity:.95}.edge.is-flow.is-selected .edge-line,.edge.is-flow.is-hovered .edge-line{stroke-dasharray:none}.design-node.is-frame.is-connect-target .frame-surface{border-color:var(--accent);border-style:dashed;box-shadow:0 0 0 5px var(--accent-soft)}.rail-templates{display:grid;grid-template-columns:1fr 1fr;gap:4px}.rail h4{margin:0 0 6px 4px;font-size:10px;font-weight:640;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);opacity:.8}.rail-template-group+.rail-template-group{margin-top:12px}.rail-templates button{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 6px 7px;border-radius:10px;border:1px solid var(--line);background:linear-gradient(160deg,#fffaf5,#fdf2e7);font-size:11px;font-weight:570;color:var(--ink-soft);transition:color .13s var(--ease),border-color .13s var(--ease),transform .13s var(--ease)}.template-preview{display:block;border-radius:5px}.template-preview.is-empty{width:74px;height:52px}.rail-components{display:grid;grid-template-columns:1fr 1fr;gap:4px}.rail-component{position:relative}.rail-component>button:first-child{width:100%;display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 6px 7px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:11px;font-weight:570;color:var(--ink-soft);transition:color .13s var(--ease),border-color .13s var(--ease),transform .13s var(--ease)}.rail-component>button:first-child:hover{color:var(--ink);border-color:var(--accent-ring);transform:translateY(-1px)}.rail-component>button:first-child span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-preview{display:block}.component-remove{position:absolute;top:-4px;right:-4px;width:17px;height:17px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:10px;font-weight:700;line-height:1;color:var(--ink-faint);opacity:0;transition:opacity .13s var(--ease),color .13s var(--ease)}.rail-component:hover .component-remove,.component-remove:focus-visible{opacity:1}@media (pointer: coarse){.component-remove{opacity:1;width:26px;height:26px;top:-7px;right:-7px;font-size:12px;box-shadow:var(--shadow-sm)}.rail-templates button,.rail-component>button:first-child{min-height:96px}}.component-remove:hover{color:var(--danger, #c0392b)}.rail-templates button:hover{color:var(--ink);border-color:var(--accent-ring);transform:translateY(-1px)}.empty-templates{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:16px;pointer-events:auto}.empty-templates button{padding:7px 13px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:570;color:var(--ink-soft);box-shadow:var(--shadow-sm);transition:color .13s var(--ease),border-color .13s var(--ease),transform .13s var(--ease)}.empty-templates button:hover{color:var(--accent);border-color:var(--accent-ring);transform:translateY(-1px)}.rail-mode{display:flex;gap:2px;margin-bottom:12px;padding:3px;background:#2b26200d;border-radius:10px}.rail-mode button{flex:1;padding:6px 2px;border-radius:8px;font-size:11.5px;font-weight:600;color:var(--ink-faint);transition:background .13s var(--ease),color .13s var(--ease)}.rail-mode button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.layers-panel section+section{margin-top:10px;padding-top:8px;border-top:1px solid var(--paper-edge)}.layer-row{display:flex;align-items:center;gap:6px;height:28px;padding-right:4px;border-radius:8px;font-size:12px;color:var(--ink-soft);cursor:pointer;transition:background .12s var(--ease),color .12s var(--ease)}.layer-row:hover{background:#2b26200d;color:var(--ink)}.layer-row.is-active{background:var(--accent-soft);color:var(--ink)}.layer-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-tools{display:none;gap:1px}.layer-row:hover .layer-tools,.layer-row.is-active .layer-tools{display:flex}.layer-tools button{width:20px;height:20px;border-radius:6px;font-size:10px;color:var(--ink-faint)}.layer-tools button:hover{background:#2b26201a;color:var(--ink)}.layer-heading,.layer-empty,.layers-empty{padding:6px 8px;font-size:11px;color:var(--ink-faint)}.layer-empty{padding-left:22px;font-style:italic}.export-wrap{position:relative}.export-menu{position:absolute;right:0;top:calc(100% + 6px);width:250px;padding:9px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);z-index:50;animation:rise-plain .14s var(--ease)}.export-row{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 8px}.export-label{font-size:11.5px;color:var(--ink-faint)}.export-choice{display:flex;gap:2px;padding:2px;background:#2b26200d;border-radius:8px}.export-choice button{padding:3px 9px;border-radius:6px;font-size:11.5px;font-weight:600;color:var(--ink-faint)}.export-choice button.is-active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.export-toggle{display:flex;align-items:center;gap:7px;padding:4px 4px 9px;font-size:12px;color:var(--ink-soft);cursor:pointer}.export-list{display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--paper-edge);padding-top:6px}.export-list button{text-align:left;padding:8px 9px;border-radius:9px;font-size:12.5px;color:var(--ink)}.export-list button:hover{background:#2b26200f}.export-note{margin:8px 4px 2px;font-size:11.5px;color:var(--accent)}.play-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;background:#201c18;animation:fade-in .16s var(--ease)}.play-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;color:#f6f1e8}.play-bar .pill{background:#fffdf91a;border-color:#fffdf92e;color:#f6f1e8;box-shadow:none}.play-bar .pill:hover{color:#fff;border-color:#fffdf966}.play-bar .pill:disabled{opacity:.35;cursor:default}.play-title{flex:1;font-size:14px;font-weight:620}.play-count{font-size:11.5px;color:#f6f1e88c}.play-stage{flex:1;display:grid;place-items:center;padding:0 24px 20px;overflow:hidden}.play-screen{border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 30px 80px #00000073;animation:play-in .22s var(--ease)}@keyframes play-in{0%{opacity:0;transform:translateY(14px) scale(.99)}}.play-hotspot{pointer-events:all;fill:#c9633c00;stroke:#c9633c00;stroke-width:2;cursor:pointer;transition:fill .14s var(--ease),stroke .14s var(--ease)}.play-hotspot:hover{fill:#c9633c29;stroke:#c9633ccc}.play-hotspot.is-flashing{fill:#c9633c38;stroke:#c9633ce6}.play-links{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;padding:0 16px 18px}.play-button{border-color:var(--accent-ring);color:var(--accent)}@media (pointer: coarse){.handle{width:30px;height:30px}.handle-up{top:-38px;left:calc(50% - 15px)}.handle-down{bottom:-38px;left:calc(50% - 15px)}.handle-left{left:-38px;top:calc(50% - 15px)}.handle-right{right:-38px;top:calc(50% - 15px)}.handle,.link-handle,.pin-badge{opacity:1;transform:none}.link-handle{width:30px;height:30px;right:-40px;top:calc(50% - 15px)}.resize-handle{width:16px;height:16px}.resize-nw,.resize-sw,.resize-w{left:-9px}.resize-ne,.resize-se,.resize-e{right:-9px}.resize-nw,.resize-n,.resize-ne{top:-9px}.resize-sw,.resize-s,.resize-se{bottom:-9px}.resize-n,.resize-s{left:calc(50% - 8px)}.resize-e,.resize-w{top:calc(50% - 8px)}.floating-toolbar button,.context-list button,.rail-grid button,.page-tab{min-height:38px}.hint-bar{display:none}}.slot-handles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.slot-handle{position:absolute;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1.4px solid var(--accent-ring);color:var(--accent);box-shadow:var(--shadow-sm);opacity:0;transform:scale(.7);transition:opacity .14s var(--ease),transform .14s var(--ease),background .14s var(--ease),color .14s var(--ease);pointer-events:auto;z-index:7}.design-node.is-widget:hover .slot-handle,.design-node.is-widget.is-selected .slot-handle{opacity:1;transform:scale(1)}.slot-handle.is-linked{background:var(--accent);border-color:var(--accent);color:#fff;opacity:1;transform:scale(1)}.slot-handle:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.18)}@media (pointer: coarse){.slot-handle{width:28px;height:28px;opacity:1;transform:none}}.canvas.is-focused{background:radial-gradient(120% 90% at 50% 0%,#fdfbf7,#f6f2ea 52%,#ece6da)}.canvas.is-focused:after{box-shadow:inset 0 0 0 3px #c9633c29}.focus-bar{position:absolute;left:50%;top:14px;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:7px 8px 7px 14px;background:var(--surface-veil);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--accent-ring);border-radius:13px;box-shadow:var(--shadow-md);font-size:12.5px;color:var(--ink);z-index:34;animation:rise-plain .15s var(--ease);white-space:nowrap}.focus-dot{width:8px;height:8px;border-radius:50%;background:var(--accent)}.focus-label{font-weight:640;max-width:220px;overflow:hidden;text-overflow:ellipsis}.focus-count{font-size:11.5px;color:var(--ink-faint)}.focus-bar button{padding:5px 11px;border-radius:9px;border:1px solid var(--line);background:var(--surface);font-size:11.5px;font-weight:570;color:var(--ink-soft);transition:color .13s var(--ease),border-color .13s var(--ease)}.focus-bar button:hover{color:var(--accent);border-color:var(--accent-ring)}.storage-bar{position:fixed;left:50%;bottom:18px;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:min(680px,92vw);padding:10px 10px 10px 14px;background:#2b2620;border-radius:13px;box-shadow:var(--shadow-lg);color:#f6f1e8;font-size:12.5px;z-index:90;animation:rise-plain .18s var(--ease)}.storage-mark{display:grid;place-items:center;width:20px;height:20px;flex-shrink:0;border-radius:50%;background:#e0a24a;color:#2b2620;font-weight:800;font-size:12px}.storage-text{flex:1;line-height:1.4}.storage-bar button{padding:6px 12px;border-radius:9px;background:#f6f1e824;color:#f6f1e8;font-size:12px;font-weight:600;white-space:nowrap}.storage-bar button:hover{background:#f6f1e83d}.storage-dismiss{padding:6px 9px!important;background:transparent!important;color:#f6f1e899!important}.storage-bar.is-conflict{background:#4a2f22}.edge-waypoint{pointer-events:auto;fill:var(--surface, #fffdf8);stroke:var(--accent, #c9633c);stroke-width:2;cursor:grab;touch-action:none}.edge-waypoint:hover{stroke-width:2.6}.edge-waypoint:active{cursor:grabbing}.edge-waypoint.is-ghost{fill:var(--accent, #c9633c);stroke:none;opacity:.42}.edge:hover .edge-waypoint.is-ghost{opacity:.85}@media (pointer: coarse){.edge-waypoint{r:9}}.node.is-group{filter:none;align-items:flex-start;justify-content:flex-start}.node.is-group .shape-outline{opacity:.85}.node.is-group .node-text{padding:10px 14px;text-align:left;font-weight:640;letter-spacing:.01em;opacity:.85}.node.is-group .node-input{height:44px;text-align:left;padding:10px 14px}.node.is-group:before{top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:22px}.menu-custom{display:flex;align-items:center;gap:10px;padding:9px 6px 2px;border-top:1px solid var(--paper-edge);margin-top:6px;font-size:11.5px;color:var(--ink-faint)}.menu-custom label{display:inline-flex;align-items:center;gap:5px;cursor:pointer}.menu-custom input[type=color]{width:26px;height:22px;padding:0;border:1px solid var(--line);border-radius:6px;background:none;cursor:pointer}.menu-custom button{margin-left:auto;padding:3px 8px;border-radius:7px;font-size:11px;color:var(--accent)}.menu-custom button:hover{background:var(--accent-soft)}:root[data-theme=dark]{--paper: #191714;--paper-deep: #131110;--paper-edge: #2f2a25;--ink: #f2ece2;--ink-soft: #b8ae9f;--ink-faint: #7d7365;--dot: rgba(242, 236, 226, .14);--surface: #23201c;--surface-veil: rgba(35, 32, 28, .9);--line: rgba(242, 236, 226, .14);--line-strong: rgba(242, 236, 226, .28);--accent: #e08b5c;--accent-soft: rgba(224, 139, 92, .18);--accent-ring: rgba(224, 139, 92, .45);--danger: #e0748a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 3px 8px rgba(0, 0, 0, .32);--shadow-md: 0 2px 6px rgba(0, 0, 0, .45), 0 14px 32px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .5), 0 30px 60px rgba(0, 0, 0, .5);color-scheme:dark}:root[data-theme=dark] body{background:var(--paper)}:root[data-theme=dark] .canvas{background:radial-gradient(120% 90% at 50% 0%,#201d19,#191714 48%,#121110)}:root[data-theme=dark] .canvas.is-wireframe{background:radial-gradient(120% 90% at 50% 0%,#1d1b18,#171512 52%,#100f0e)}:root[data-theme=dark] .canvas:before{opacity:.22;mix-blend-mode:screen}:root[data-theme=dark] .canvas:after{box-shadow:inset 0 0 180px #0000008c}:root[data-theme=dark] .top-bar{background:linear-gradient(180deg,#23201cf0,#191714d1)}:root[data-theme=dark] .brand .mark{background:linear-gradient(160deg,#2e2822,#241f1a);border-color:#e08b5c57}:root[data-theme=dark] .page-bar{background:#191714db}:root[data-theme=dark] .design-node.is-frame .frame-surface{background:#f7f4ee;border-color:#3a352e}:root[data-theme=dark] .rail-templates button,:root[data-theme=dark] .rail-grid button:hover,:root[data-theme=dark] .key-map,:root[data-theme=dark] .gesture-grid figure{background:linear-gradient(160deg,#272320,#201d19)}:root[data-theme=dark] .storage-bar{background:#0f0e0d}.readonly-bar{grid-column:1 / -1;display:flex;align-items:center;gap:10px;padding:8px 16px;background:var(--accent-soft);border-bottom:1px solid var(--accent-ring);font-size:12.5px;color:var(--ink);z-index:36}.readonly-bar button{margin-left:auto;padding:5px 12px;border-radius:9px;border:1px solid var(--accent-ring);background:var(--surface);font-size:12px;font-weight:600;color:var(--accent)}.app.is-readonly .floating-toolbar,.app.is-readonly .hint-bar,.app.is-readonly .quick-menu{display:none}.readonly-bar.is-failed{background:#b23a4e24;border-bottom-color:#b23a4e66}.readonly-bar.is-failed .focus-dot{background:var(--danger)}.pane-tools{display:flex;align-items:center;gap:2px}.pane-help{width:24px;height:24px;border-radius:8px;border:1px solid var(--line);font-size:12px;font-weight:700;color:var(--ink-soft);transition:color .13s var(--ease),border-color .13s var(--ease),background .13s var(--ease)}.pane-help:hover,.pane-help.is-active{color:var(--accent);border-color:var(--accent-ring);background:var(--accent-soft)}.syntax-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;display:grid;place-items:center;padding:24px;background:#2b26204d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .14s var(--ease)}.syntax-card{width:min(760px,94vw);max-height:86vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-lg);animation:rise-plain .17s var(--ease);overflow:hidden}.syntax-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 22px 14px;border-bottom:1px solid var(--paper-edge)}.syntax-card h2{margin:0 0 3px;font-size:17px;letter-spacing:-.01em}.syntax-card header p{margin:0;font-size:12.5px;color:var(--ink-soft)}.syntax-body{padding:16px 22px 22px;overflow-y:auto}.syntax-body section+section{margin-top:20px}.syntax-body h3{margin:0 0 9px;font-size:11px;font-weight:680;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.syntax-body dl{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:6px 24px}.syntax-body dl>div{display:flex;align-items:baseline;gap:10px;font-size:12.5px}.syntax-body dt{min-width:190px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:6px;white-space:nowrap}.syntax-body dd{margin:0;color:var(--ink-soft)}.syntax-tags{display:flex;flex-wrap:wrap;gap:6px}.syntax-tag{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:9px;font-size:12px;color:var(--ink)}.syntax-tag b{font-family:JetBrains Mono,ui-monospace,monospace;font-weight:600;font-size:11.5px}.syntax-tag em{font-style:normal;font-size:11px;color:var(--ink-faint)}.syntax-swatch{width:13px;height:13px;border-radius:50%;border:1.5px solid}.syntax-notes{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--ink-soft);line-height:1.5}.syntax-notes code{font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;background:#2b262012;padding:1px 5px;border-radius:5px}.syntax-body pre{margin:0 0 10px;padding:14px 16px;border-radius:12px;background:#2b26200d;border:1px solid var(--paper-edge);font-family:JetBrains Mono,ui-monospace,monospace;font-size:12px;line-height:1.7;color:var(--ink);white-space:pre-wrap;overflow-x:auto}.syntax-copy{padding:7px 13px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:12px;font-weight:570;color:var(--ink-soft)}.syntax-copy:hover{color:var(--accent);border-color:var(--accent-ring)}.syntax-actions{display:flex;align-items:center;gap:6px}.syntax-actions>button:last-child{width:28px;height:28px;border-radius:9px;color:var(--ink-faint)}.syntax-actions>button:last-child:hover{background:#2b262014;color:var(--ink)}.syntax-copy.is-primary{background:var(--accent);border-color:var(--accent);color:#fff}.syntax-copy.is-primary:hover{color:#fff;filter:brightness(1.05)}.syntax-buttons{display:flex;flex-wrap:wrap;gap:8px}.syntax-note{padding:10px 22px 14px;border-top:1px solid var(--paper-edge);font-size:12px;font-weight:570;color:var(--accent)}.page-tools button{width:auto;min-width:19px;padding:0 5px;font-size:10px;font-weight:600}.lazy-holder{display:block;border-radius:5px;background:var(--paper-deep)}.syntax-tags.is-dense{gap:4px;max-height:168px;overflow-y:auto;padding-right:4px}.syntax-tags.is-dense .syntax-tag{padding:3px 7px;font-size:11px}.pane-ai{padding:4px 10px;border-radius:8px;border:1px solid var(--accent-ring);font-size:11.5px;font-weight:600;color:var(--accent);transition:background .13s var(--ease),color .13s var(--ease)}.pane-ai:hover{background:var(--accent);color:#fff}.pane-note{margin:0;padding:8px 15px;border-top:1px solid var(--paper-edge);font-size:11.5px;color:var(--accent)}@media (pointer: coarse){.pill{height:40px;padding:0 15px}.segment button{height:36px;min-width:42px}.floating-toolbar button{min-width:42px;height:42px;padding:0 10px}.floating-toolbar .divider{height:26px}.context-list button,.more-menu button{min-height:44px;display:flex;align-items:center}.context-option{min-height:44px;padding:6px}.context-option input[type=range]{flex:0 0 96px;width:96px;height:24px}.option-count button{width:34px;height:34px;font-size:17px}.option-count b{min-width:32px;font-size:13px}.option-switch{width:44px;height:26px;padding:3px}.option-switch i{width:20px;height:20px}.option-switch.is-on i{transform:translate(18px)}.option-switch.is-mixed i{transform:translate(9px)}.option-reset,.swap-more{min-height:32px;padding:6px 11px;font-size:11.5px}.context-row.widgets button,.context-row.shapes button,.context-row.devices button{min-height:44px}.context-row.swatches .swatch{width:30px;height:30px}.menu-grid button{min-height:62px}.knob-reset{min-height:40px}.edge-insert,.edge-waypoint.is-ghost{opacity:1}}@media (max-width: 900px){.app,.app.with-rail,.app.with-pane,.app.with-rail.with-pane{grid-template-columns:1fr;grid-template-rows:52px 34px 1fr}.app.with-rail .stage,.app.with-pane .stage,.app .stage{grid-row:3;grid-column:1}.app>header{gap:6px;padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));overflow:hidden}.brand{flex:0 1 auto;min-width:0;gap:6px}.brand .name{display:none}.mode-switch{flex:0 0 auto}.mode-switch button{padding:0 9px;font-size:11.5px}.top-actions{flex:0 0 auto;gap:5px;min-width:0}.top-actions .pill{padding:0 11px}.segment button{min-width:36px;padding:0 7px}}@media (max-width: 560px){.brand .mark{display:none}.app>header{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}.pill-label{display:none}.top-actions .pill{padding:0 9px}.mode-switch button{padding:0 7px;font-size:11px}}@media (max-width: 900px){.text-pane{position:fixed;inset:auto 0 0 0;z-index:60;width:auto;max-height:70dvh;border-left:none;border-top:1px solid var(--paper-edge);border-radius:18px 18px 0 0;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#2b262047;animation:fade-in .16s var(--ease)}}@media (max-width: 900px){.floating-toolbar{position:fixed;left:8px!important;right:8px;top:auto!important;bottom:calc(74px + env(safe-area-inset-bottom));transform:none;flex-wrap:wrap;justify-content:center;row-gap:4px;white-space:normal;border-radius:16px;padding:6px}.floating-toolbar .divider{display:none}.app:not(.with-rail) .floating-toolbar{bottom:calc(16px + env(safe-area-inset-bottom))}.quick-menu{position:fixed;left:50%!important;top:auto!important;bottom:calc(130px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:min(94vw,340px);max-height:46dvh;overflow-y:auto;overscroll-behavior:contain}.context-menu{max-height:76dvh;overflow-y:auto;overscroll-behavior:contain}.zoom-widget{top:10px;right:max(10px,env(safe-area-inset-right));bottom:auto}.hint-bar{display:none}.storage-bar{bottom:calc(76px + env(safe-area-inset-bottom));left:12px;right:12px;transform:none;max-width:none}.canvas{touch-action:none}}@media (max-width: 900px){.rail{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:60;max-height:min(62dvh,560px);padding:10px 14px calc(18px + env(safe-area-inset-bottom));border-right:none;border-top:1px solid var(--paper-edge);border-radius:18px 18px 0 0;box-shadow:0 -14px 44px #2b26202e;transform:translateY(calc(100% + 20px));transition:transform .22s var(--ease);overscroll-behavior:contain}.app.rail-open .rail{transform:translateY(0)}.rail:before{content:"";position:sticky;top:0;display:block;width:42px;height:4px;margin:0 auto 10px;border-radius:3px;background:var(--paper-edge)}}
