.app-loader{flex:1;width:100%;height:100%;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:var(--bg-primary);color:var(--text-secondary)}.app-loader-mark{display:flex;align-items:center;gap:10px;color:var(--accent)}.app-loader-mark strong{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.2px;color:var(--text-primary)}.app-loader-spinner{width:26px;height:26px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:var(--radius-full);animation:spin .7s linear infinite}.app-loader-label{margin:0;font-size:var(--text-xs);letter-spacing:.2px}@media(prefers-reduced-motion:reduce){.app-loader-spinner{animation:none;border-color:var(--accent-dim);border-top-color:var(--accent)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark light;--bg-canvas: #081e33;--bg-primary: #071726;--bg-surface: #0d2238;--bg-elevated: #132a44;--bg-hover: rgba(140, 200, 255, .06);--text-primary: #e6f0f6;--text-secondary: #9bb3c2;--text-muted: #5f7a8c;--copper: #f07a1a;--copper-dim: rgba(240, 122, 26, .16);--copper-hover: #ff933d;--copper-ink: #1a0d00;--cyan-cad: #6fe0ff;--cyan-cad-dim: rgba(111, 224, 255, .16);--cyan-cad-hover: #8ae8ff;--cyan-cad-ink: #001018;--accent-a: var(--copper);--accent-a-dim: var(--copper-dim);--accent-a-hover: var(--copper-hover);--accent-a-text: var(--copper-ink);--accent-b: var(--cyan-cad);--accent-b-dim: var(--cyan-cad-dim);--accent-b-hover: var(--cyan-cad-hover);--accent-b-text: var(--cyan-cad-ink);--accent: var(--accent-a);--accent-dim: var(--accent-a-dim);--accent-hover: var(--accent-a-hover);--accent-text: var(--accent-a-text);--info: var(--accent-b);--success: #4daa77;--success-bg: rgba(77, 170, 119, .88);--danger: #e05c5c;--danger-bg: rgba(224, 92, 92, .9);--warning: #d9976a;--border: #1c3446;--border-focus: var(--accent-a);--snap-color: var(--accent-b);--shadow: rgba(0, 0, 0, .7);--grid-major: rgba( 180, 220, 255, .2 );--grid-minor: rgba(120, 180, 255, .1);--grid-section: rgba(180, 220, 255, .2);--edge-default: #79aecd;--edge-selected: var(--accent-b);--toast-info-bg: rgba(13, 31, 45, .97);--panel-glass: rgba(13, 31, 45, .7);--panel-glass-strong: rgba(13, 31, 45, .85);--chip-bg: rgba(255, 255, 255, .06);--selection-bg: var(--accent-a-dim);--selection-ring: var(--accent-a);--target-bg: rgba(77, 170, 119, .1);--target-ring: rgba(77, 170, 119, .3);--overlay-scrim: rgba(0, 0, 0, .55);--diff-added: var(--success);--diff-added-dim: rgba(77, 170, 119, .12);--diff-modified: var(--warning);--diff-modified-dim: rgba(217, 151, 106, .12);--diff-removed: var(--danger);--diff-removed-dim: rgba(224, 92, 92, .12);--bg-secondary: var(--bg-surface);--bg-tertiary: var(--bg-elevated);--text-3xs: 10px;--text-2xs: 11px;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 15px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--text-5xl: 40px;--radius-xs: 3px;--radius-sm: 5px;--radius-md: 7px;--radius-lg: 10px;--radius-xl: 14px;--radius-2xl: 20px;--radius-full: 9999px;--sz-rail: 56px;--sz-tool-btn: 44px;--sz-icon-btn: 32px;--sz-ftb-btn: 36px;--sz-status-bar: 32px;--sz-panel: 280px;--sz-panel-outline: 200px;--sz-panel-props: 280px;--sz-cmdbar: 40px;--sz-cmdbar-sub: 36px;--sz-palette: 560px;--sz-mobile-dock: 56px;--sz-mobile-chrome-bottom: calc( var(--sz-status-bar) + env(safe-area-inset-bottom, 0px) );--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--font-ui: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", "Fira Code", "Cascadia Code", monospace;--transition-fast: .12s ease;--axis-x: #e05c5c;--axis-x-dim: rgba(224, 92, 92, .18);--axis-y: #4daa77;--axis-y-dim: rgba(77, 170, 119, .18);--axis-z: #5c8ce0;--axis-z-dim: rgba(92, 140, 224, .18);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .65);--text-on-color: #ffffff}@media(prefers-color-scheme:light){:root{--bg-canvas: #e6f0f6;--bg-primary: #f4f8fb;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-hover: rgba(0, 120, 180, .05);--text-primary: #142028;--text-secondary: #4f6b7a;--text-muted: #7f97a3;--accent-a: #e85d04;--accent-a-dim: rgba(232, 93, 4, .12);--accent-a-hover: #ff7a1a;--accent-a-text: #ffffff;--accent-b: #007ea7;--accent-b-dim: rgba(0, 126, 167, .12);--accent-b-hover: #0096c7;--accent-b-text: #ffffff;--border: #d4e1ea;--border-focus: var(--accent-a);--snap-color: var(--accent-b);--edge-default: #9fb6c4;--edge-selected: var(--accent-b);--success: #2e8f58;--success-bg: rgba(46, 143, 88, .9);--danger: #c42828;--danger-bg: rgba(196, 40, 40, .9);--warning: #a06020;--shadow: rgba(0, 0, 0, .12);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 16px rgba(0, 0, 0, .12);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .16);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .22);--grid-major: rgba(0, 126, 167, .28);--grid-minor: rgba(0, 126, 167, .08);--grid-section: rgba(0, 126, 167, .35);--panel-glass: rgba(255, 255, 255, .78);--panel-glass-strong: rgba(255, 255, 255, .9);--chip-bg: rgba(13, 31, 45, .05);--selection-bg: var(--accent-a-dim);--target-bg: rgba(46, 143, 88, .1);--target-ring: rgba(46, 143, 88, .3);--toast-info-bg: rgba(255, 255, 255, .97)}}html,body,#root{height:100%;width:100%;overflow:hidden;font-family:var(--font-ui);background:var(--bg-primary);color:var(--text-primary)}html.blog-route,html.blog-route body,html.blog-route #root{height:auto;overflow:visible}button{cursor:pointer;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);padding:6px 12px;border-radius:var(--radius-md);font-size:var(--text-base);transition:all .12s}button:hover{background:var(--bg-hover)}button:disabled{opacity:.3;cursor:not-allowed}button:disabled:hover{background:var(--bg-surface)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}button:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}input:focus-visible{outline:1px solid var(--border-focus);outline-offset:0}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover{background:var(--accent-hover)}kbd{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 5px;font-size:var(--text-sm);font-family:monospace;color:var(--text-primary);margin-right:4px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes obj-spawn{0%{transform:scale(.95);opacity:.6}to{transform:scale(1);opacity:1}}.obj-spawn{animation:obj-spawn .08s ease-out both}@keyframes snap-pulse{0%{opacity:1}60%{opacity:.3}to{opacity:1}}.snap-pulse{animation:snap-pulse .25s ease-out both}@keyframes tool-press{0%{transform:scale(1)}40%{transform:scale(.9)}to{transform:scale(1)}}.tool-press{animation:tool-press .1s ease-out both}.panel-resize-handle{position:absolute;top:0;bottom:0;width:6px;cursor:ew-resize;background:transparent;z-index:1;touch-action:none;transition:background var(--transition-fast)}.panel-resize-handle--left{left:0}.panel-resize-handle--right{right:0}.panel-resize-handle:hover,.panel-resize-handle:focus-visible{background:color-mix(in srgb,var(--accent) 35%,transparent);outline:none}.panel-resize-handle:active{background:var(--accent)}@media(prefers-reduced-motion:reduce){.panel-resize-handle{transition:none}}@media(max-width:768px){.panel-resize-handle{display:none}}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:scale(.96) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes item-in{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.outliner-item-new{animation:item-in .12s ease-out both}@media(max-width:768px){button,.icon-btn{min-height:36px;min-width:36px}::-webkit-scrollbar{width:4px}}@media(hover:none)and (pointer:coarse){button:hover{background:var(--bg-surface)}}@keyframes mobile-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}.mobile-sheet-scrim{display:none}@media(max-width:768px){.mobile-sheet-scrim{display:block;position:fixed;inset:0;bottom:calc(var(--sz-mobile-dock) + var(--sz-mobile-chrome-bottom));background:var(--overlay-scrim);z-index:38;animation:scrim-in .15s ease-out}}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){@keyframes mobile-sheet-in{0%{transform:translateY(0)}to{transform:translateY(0)}}@keyframes scrim-in{0%{opacity:1}to{opacity:1}}}
