*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{color:#fff;--ui-radius:10px;--image-inset:10px;--image-inset-double:20px;--brand-overhang:14px;--panel-surface-bg:#0808089e;--panel-surface-blur:blur(1px);background:#0d0d0d;height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}#toolbar{z-index:14;border-radius:var(--ui-radius);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#080808c7;border:1px solid #ffffff1a;align-items:center;gap:12px;width:auto;max-width:calc(100vw - 32px);padding:12px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 18px 42px #0000006b,inset 0 0 0 1px #ffffff08}.logo{letter-spacing:.01em;color:#ffffffd9;white-space:nowrap;align-items:center;gap:20px;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:25px;font-weight:100;line-height:1;display:inline-flex}.brand-title-group{grid-column:2;justify-content:center;justify-self:center;position:relative}.logo-icon{flex:none;width:44px;height:44px;display:block}.logo-symbol{background:#fff;border:.25px solid #c01616;border-radius:3px;grid-column:1;justify-self:start;align-items:center;padding:8px;display:flex;box-shadow:0 14px 30px #00000047,inset 0 0 0 1px #ffffff08}.logo-text{color:#ffffffeb;-webkit-backdrop-filter:blur(100px);backdrop-filter:blur(100px);text-align:center;white-space:nowrap;background:#08080824;border:1px solid #ffffffeb;border-radius:4px;justify-content:center;align-items:center;padding:5px 10px;display:flex;box-shadow:0 14px 30px #00000047,inset 0 0 0 1px #ffffff08}.logo-help{align-items:center;display:flex;position:relative}.logo-help-button{color:#ffffffeb;width:22px;height:22px;font:inherit;letter-spacing:0;cursor:pointer;background:0 0;border:1px solid #ffffffc7;border-radius:999px;place-items:center;padding:0;font-size:14px;font-weight:400;line-height:1;transition:background .15s,color .15s,border-color .15s;display:grid}.logo-help-button:hover,.logo-help-button:focus-visible,.logo-help-button[aria-expanded=true]{color:#fff;background:#ffffff29;border-color:#fff;outline:none}.logo-tooltip{z-index:20;border-radius:var(--ui-radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffffffe0;letter-spacing:.02em;white-space:pre-wrap;overflow-wrap:break-word;background:#080808e0;border:1px solid #ffffff2e;width:min(280px,100vw - 32px);padding:10px 12px;font-size:12px;font-weight:400;line-height:1.45;position:fixed;box-shadow:0 14px 30px #00000047,inset 0 0 0 1px #ffffff08}#brand-mark{z-index:14;padding-inline:max(20px, calc(var(--image-inset) - var(--brand-overhang)));pointer-events:none;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;display:grid;position:absolute;top:20px;left:0;right:0}#brand-mark .logo-help,#brand-mark .logo-help-button,#brand-mark .logo-tooltip{pointer-events:auto}#ui-controls{z-index:40;border-radius:var(--ui-radius);background:var(--panel-surface-bg);box-shadow:none;-webkit-backdrop-filter:var(--panel-surface-blur);backdrop-filter:var(--panel-surface-blur);border:1px solid #ffffff1f;align-items:flex-start;gap:8px;padding:8px;display:flex;position:absolute;bottom:16px;right:16px}.ui-buttons{gap:8px;display:grid}#ui-controls .ui-buttons .btn{color:#ffffffe0;width:100%;box-shadow:none;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#ffffff0f;border-color:#ffffff1a;border-radius:5px}#ui-controls .ui-buttons .btn:hover,#ui-controls .ui-buttons .btn.active{color:#fff}.btn.panel-handle{border-radius:var(--ui-radius);color:#ffffffe0;cursor:grab;touch-action:none;background:#0006;border-color:#ffffff2e;flex:none;place-items:center;width:30px;height:30px;padding:0;display:grid}.btn.panel-handle:hover{background:#ffffff24}.btn.panel-handle:active,.btn.panel-handle.active{cursor:grabbing}.toolbar-content{align-items:center;min-width:0;display:flex}.toolbar-controls{flex-wrap:nowrap;align-items:center;gap:8px;display:flex}#toolbar .toolbar-controls .btn{border-radius:5px}#animation-toolbar{z-index:16;border-radius:var(--ui-radius);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#080808d1;border:1px solid #ffffff24;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:10px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 18px 42px #0000006b,inset 0 0 0 1px #ffffff08}#animation-toolbar[hidden],.animation-path-controls[hidden]{display:none}.animation-toolbar-controls,.animation-path-controls,.animation-field{align-items:center;display:flex}.animation-toolbar-controls,.animation-path-controls{gap:8px}.animation-path-controls{border-left:1px solid #ffffff1f;min-width:0;padding-left:8px}.animation-path-label,.animation-field span{color:#ffffffb8;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:11px;font-weight:600}.animation-field{gap:7px}#animation-duration{accent-color:#fff;width:118px}.animation-value{text-align:right;min-width:32px}#animation-easing{color:#ffffffdb;height:28px;font:inherit;background:#ffffff14;border:1px solid #ffffff24;border-radius:5px;outline:none;font-size:12px;line-height:1}#animation-easing:focus{border-color:#ffffff57}#area-flow-menu{z-index:32;border-radius:var(--ui-radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080808e6;border:1px solid #ffffff29;min-width:180px;padding:10px;position:absolute;top:0;left:0;box-shadow:0 18px 42px #0000006b,inset 0 0 0 1px #ffffff08}.area-flow-menu-title{color:#ffffffb8;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:11px}.area-flow-menu-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}#area-flow-menu .btn{border-radius:5px;justify-content:center;min-height:34px;font-size:12px}#area-flow-menu .btn.active{color:#fff;background:#ffffff29;border-color:#ffffff7a}.btn{color:#ffffffbf;border-radius:var(--ui-radius);cursor:pointer;letter-spacing:.02em;white-space:nowrap;background:#ffffff12;border:1px solid #ffffff1a;padding:6px 14px;font-size:12px;font-weight:500;line-height:1;transition:background .15s,border-color .15s,color .15s}.btn:hover{color:#fff;background:#ffffff21;border-color:#ffffff2e}.btn:disabled{cursor:not-allowed;opacity:.58}.btn:disabled:hover{color:#ffffffbf;background:#ffffff12;border-color:#ffffff1a}.btn.active{color:#fff;background:#ffffff24;border-color:#ffffff47}#canvas-container{width:100%;height:100%;position:relative;overflow:hidden}#image-stage{left:var(--image-inset);top:var(--image-inset);width:calc(100% - var(--image-inset-double));height:calc(100% - var(--image-inset-double));position:absolute}#image-stage canvas{width:100%;height:100%;display:block;position:absolute;top:0;left:0}#overlay-canvas{cursor:crosshair;touch-action:none}#preview-frame{z-index:12;width:min(34vw,320px);aspect-ratio:var(--preview-frame-aspect,16 / 10);border-radius:var(--ui-radius);-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);pointer-events:none;background:#0a0a0cb8;border:1px solid #ffffff29;padding:0;position:absolute;top:16px;right:16px;overflow:hidden;box-shadow:0 18px 50px #00000080,inset 0 0 0 1px #ffffff0a}#preview-frame .btn{z-index:2;pointer-events:auto;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:var(--ui-radius);background:#0006;border-color:#ffffff2e;place-items:center;width:30px;height:30px;padding:0;display:grid;position:absolute;top:12px;right:12px}#preview-frame #btn-move{cursor:grab;touch-action:none;left:12px;right:auto}#preview-frame #btn-move:active{cursor:grabbing}#preview-frame .btn:hover{background:#ffffff24}#preview-canvas{top:var(--image-inset);left:var(--image-inset);width:calc(100% - var(--image-inset-double));height:calc(100% - var(--image-inset-double));border-radius:var(--ui-radius);display:block;position:absolute}body.border-hidden{--image-inset:0px;--image-inset-double:0px}body.border-hidden #preview-canvas{border-radius:var(--ui-radius)}body.preview-full{overflow:hidden}body.preview-full #canvas-container{background:#050507}body.preview-full #gl-canvas,body.preview-full #overlay-canvas{opacity:0;pointer-events:none}body.preview-full.ui-hidden #gl-canvas,body.preview-full.ui-hidden #overlay-canvas{opacity:1;pointer-events:auto}body.preview-full #preview-frame{aspect-ratio:auto;border-radius:var(--ui-radius);z-index:30;width:auto;box-shadow:none;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#050507f5;border:none;padding:0;position:fixed;inset:0}body.preview-full #preview-frame .btn{top:18px;right:18px}body.preview-full #btn-move{display:none}body.preview-full #preview-canvas{border-radius:var(--ui-radius)}#mobile-toolbar-wrap{display:contents}#mobile-tools-toggle{display:none}@media (width<=720px){#brand-mark{top:max(6px, calc(var(--image-inset) - 12px));padding-inline:max(6px, calc(var(--image-inset) - var(--brand-overhang)))}.logo-tooltip{width:min(260px,100vw - 24px)}#mobile-toolbar-wrap{z-index:18;pointer-events:none;flex-direction:column-reverse;align-items:stretch;gap:8px;display:flex;position:fixed;bottom:12px;left:12px;right:12px}#mobile-toolbar-wrap>*{pointer-events:auto}#mobile-tools-toggle{color:#ffffffeb;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);touch-action:manipulation;background:#080808d9;border:1px solid #fff3;border-radius:999px;align-self:flex-end;place-items:center;width:44px;height:44px;padding:0;font-size:20px;line-height:1;display:grid;box-shadow:0 6px 24px #00000080}#mobile-toolbar-wrap>#toolbar,#mobile-toolbar-wrap>#ui-controls,#mobile-toolbar-wrap>#animation-toolbar{width:100%;max-width:none;margin:0;position:static;inset:auto;transform:none}#mobile-toolbar-wrap>#toolbar{align-items:flex-start;padding:10px}#mobile-toolbar-wrap>#ui-controls .ui-buttons{grid-template-columns:repeat(3,1fr)}.toolbar-content{flex-wrap:wrap;gap:10px}.toolbar-controls{flex-wrap:wrap}#mobile-toolbar-wrap>#animation-toolbar{flex-wrap:wrap;justify-content:center}.animation-path-controls{border-top:1px solid #ffffff1f;border-left:0;flex-wrap:wrap;justify-content:center;padding-top:8px;padding-left:0}#btn-toolbar-move,#btn-ui-move,body.mobile-tools-hidden #mobile-toolbar-wrap>:not(#mobile-tools-toggle){display:none}#preview-frame{width:min(42vw,260px);top:12px;right:12px}}body.ui-hidden #brand-mark,body.ui-hidden #toolbar,body.ui-hidden #animation-toolbar,body.ui-hidden #preview-frame{opacity:0;visibility:hidden;pointer-events:none}body.preview-hidden #preview-frame,body.title-hidden #brand-mark{display:none}#cp-panel{z-index:1000;border-radius:var(--ui-radius);-webkit-user-select:none;user-select:none;background:#1c1c1e;border:1px solid #ffffff1c;width:228px;padding:14px;display:none;position:fixed;box-shadow:0 12px 40px #000000b3,0 0 0 .5px #ffffff0d}#cp-sv-wrap{border-radius:var(--ui-radius);cursor:crosshair;touch-action:none;width:200px;height:164px;margin-bottom:11px;position:relative;overflow:hidden}#cp-sv-canvas{width:200px;height:164px;display:block}#cp-sv-cursor{border-radius:var(--ui-radius);pointer-events:none;border:2px solid #fff;width:13px;height:13px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1.5px #00000073,inset 0 0 0 1px #fff3}#cp-hue{appearance:none;border-radius:var(--ui-radius);cursor:pointer;background:linear-gradient(90deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#8000ff,#f0f,#ff0080,red);border:none;outline:none;width:200px;height:13px;margin-bottom:11px;display:block}#cp-hue::-webkit-slider-thumb{-webkit-appearance:none;border-radius:var(--ui-radius);cursor:pointer;background:#fff;border:2px solid #00000040;width:17px;height:17px;box-shadow:0 1px 5px #00000080}#cp-hue::-moz-range-thumb{border-radius:var(--ui-radius);cursor:pointer;background:#fff;border:2px solid #00000040;width:17px;height:17px;box-shadow:0 1px 5px #00000080}#cp-bottom{align-items:center;gap:9px;display:flex}#cp-swatch{border-radius:var(--ui-radius);border:1px solid #ffffff21;flex-shrink:0;width:30px;height:30px}#cp-hex{color:#fff;border-radius:var(--ui-radius);letter-spacing:.06em;background:#ffffff12;border:1px solid #ffffff1a;outline:none;flex:1;padding:7px 9px;font-family:SF Mono,Fira Code,monospace;font-size:12px;transition:border-color .15s}#cp-hex:focus{border-color:#ffffff4d}
