@font-face{font-family:Raleway Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/creator_vellum/assets/raleway-cyrillic-ext-wght-normal-Dc5xu4We.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Raleway Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/creator_vellum/assets/raleway-cyrillic-wght-normal-B0Yo_ULV.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Raleway Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/creator_vellum/assets/raleway-vietnamese-wght-normal-wikBsL6_.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Raleway Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/creator_vellum/assets/raleway-latin-ext-wght-normal-CwtNDoQR.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Raleway Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/creator_vellum/assets/raleway-latin-wght-normal-CSF1BaNN.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Neugrotypeface;src:url(https://cdn.prod.website-files.com/62909cbb569cec46ad7cc1fa/658d8526fe1e07b8f6afd6dd_NEUGROTYPEFACE-Medium.otf) format("opentype");font-weight:500;font-display:swap}@font-face{font-family:Raleway Variablefont Wght;src:url(https://cdn.prod.website-files.com/62909cbb569cec46ad7cc1fa/6a0ac6bbb996c99aff1cd2a1_Raleway-VariableFont_wght.ttf) format("truetype");font-weight:100 900;font-display:swap}:root{--nassau-bluegreen: #0abed7;--highlight: #c5a11f;--dim-grey: #4a4a4a;--error: #984343;--headings: Neugrotypeface, sans-serif;--persist-signal-green: #bad70a;--persist-racy-green: #004242;--persist-signal-on: #e6ff4c;--persist-text-bright: #e6e6e6;--space--4: 4px;--space--8: 8px;--space--12: 12px;--space--16: 16px;--space--20: 20px;--space--24: 24px;--space--30: 30px;--space--40: 40px;--space--50: 50px;--space--60: 60px;--space--100: 100px;--size--control-height: 40px;--size--header-height: 60px;--stroke--default: 2px;--stroke--hairline: 1px;--radius--none: 0px;--radius--small: 2px;--radius--medium: 6px;--color--nassau-gray: rgba(196, 196, 196, .6);--color--semitransp-white: hsla(0, 0%, 76%, .5);--color--dark-slate-grey: #cacaca;--color--signal-green: #005a5a;--color--racy-green: #bad70a;--color--signal-on: #055;--color--almost-black: #e6e6e6;--color--toggle-offset: 0px;--color--text: #0e0e0e;--color--mode-light: #0e0e0e;--color--mode-dark: rgba(14, 14, 14, 0);--color--placeholder: rgba(14, 14, 14, .6);--dark--toggle-offset: 14px;--dark--nassau-gray: #252525;--dark--semitransp-white: hsla(0, 0%, 27.33%, .5);--dark--dark-slate-grey: #393939;--dark--signal-green: #bad70a;--dark--racy-green: #004242;--dark--signal-on: #e6ff4c;--dark--almost-black: #0e0e0e;--dark--text: #e6e6e6;--dark--mode-light: rgba(14, 14, 14, 0);--dark--mode-dark: #0e0e0e;--dark--placeholder: rgba(230, 230, 230, .6);--bg-page: var(--color--almost-black);--bg-surface: var(--color--nassau-gray);--bg-surface-muted: var(--color--dark-slate-grey);--bg-glass: rgba(230, 230, 230, .6);--text-primary: var(--color--text);--text-placeholder: var(--color--placeholder);--accent: var(--color--signal-green);--accent-on: var(--color--racy-green);--accent-signal: var(--color--signal-on);--font-body: "Raleway Variablefont Wght", "Raleway Variable", Arial, sans-serif;--ease: .35s ease;color-scheme:light}html.dark-mode{--color--nassau-gray: var(--dark--nassau-gray);--color--semitransp-white: var(--dark--semitransp-white);--color--dark-slate-grey: var(--dark--dark-slate-grey);--color--signal-green: var(--dark--signal-green);--color--racy-green: var(--dark--racy-green);--color--signal-on: var(--dark--signal-on);--color--almost-black: var(--dark--almost-black);--color--toggle-offset: var(--dark--toggle-offset);--color--text: var(--dark--text);--color--mode-light: var(--dark--mode-light);--color--mode-dark: var(--dark--mode-dark);--color--placeholder: var(--dark--placeholder);--bg-glass: rgba(14, 14, 14, .6);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);font-size:16px;line-height:26px;color:var(--text-primary);background:var(--bg-page);-webkit-font-smoothing:antialiased;transition:background-color var(--ease),color var(--ease)}button,input,select{font:inherit;color:inherit}a{color:var(--accent)}:focus-visible{outline:var(--stroke--default) solid var(--accent);outline-offset:2px}h1,h2{font-family:var(--headings);font-weight:500;margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space--8);height:var(--size--control-height);padding:0 var(--space--16);border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);background:transparent;color:var(--text-primary);font-weight:500;font-size:16px;line-height:20px;white-space:nowrap;cursor:pointer;text-decoration:none;transition:background-color var(--ease),border-color var(--ease),color var(--ease)}.btn:hover:not(:disabled){background:var(--dim-grey);color:var(--persist-text-bright)}.btn:disabled{opacity:.4;cursor:default}.btn-small{height:32px;padding:0 var(--space--12);font-size:14px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.btn-primary:hover:not(:disabled){background:var(--accent-signal);border-color:var(--accent-signal);color:var(--accent-on)}.btn-secondary{border-color:var(--accent);color:var(--accent)}.btn-secondary:hover:not(:disabled){background:var(--accent);color:var(--accent-on)}.btn-quiet{border-color:transparent}.btn-danger{color:#d27272}html:not(.dark-mode) .btn-danger{color:var(--error)}.btn-danger:hover:not(:disabled){background:var(--error);border-color:var(--error);color:var(--persist-text-bright)}.btn-link{height:auto;padding:0;border:0;color:var(--accent);font-size:14px;text-decoration:underline;text-underline-offset:3px}.btn-link:hover:not(:disabled){background:none;color:var(--accent)}.btn-big{width:100%;height:48px}.btn-wide{width:100%}.button-row,.button-group{display:flex;flex-wrap:wrap;gap:var(--space--8);margin:var(--space--12) 0}.button-group{gap:var(--space--12)}.pill{display:inline-flex;align-items:center;padding:1px 6px 2px;border-radius:var(--radius--small);background:var(--bg-surface-muted);color:var(--text-primary);font-size:12px;line-height:16px;font-weight:500}.input,select{height:var(--size--control-height);width:100%;padding:0 var(--space--8);border:var(--stroke--default) solid var(--text-primary);border-radius:var(--radius--medium);background:var(--bg-glass);font-size:16px;line-height:20px;transition:border-color var(--ease),background-color var(--ease)}.input::placeholder{color:var(--text-placeholder)}.input:focus,select:focus{border-color:var(--accent);outline:none}select{border-color:var(--dim-grey);cursor:pointer}.toggle_wrap{display:flex;width:50px;height:var(--size--control-height);padding:var(--space--4);border:var(--stroke--default) solid var(--persist-signal-green);border-radius:var(--radius--medium);background:transparent;cursor:pointer;flex:none}.toggle_inner{position:relative;display:flex;width:24px;height:100%;margin-left:var(--color--toggle-offset);border-radius:var(--radius--small);background:var(--persist-signal-green);transition:margin-left var(--ease)}.switchbtn{position:absolute;left:3px;top:50%;transform:translateY(-50%)}.switchbtn path{transition:fill var(--ease)}.header,.topbar{display:flex;align-items:center;gap:var(--space--16);height:var(--size--header-height);padding:0 var(--space--24);background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:var(--stroke--hairline) solid var(--bg-surface-muted);position:relative;z-index:5}.brand{display:flex;align-items:center;flex:none}.header-logo{display:block;height:20px;width:auto}html:not(.dark-mode) .header-logo{filter:brightness(.45) saturate(1.4)}.header-app{font-family:var(--headings);font-size:20px;line-height:24px;padding-left:var(--space--16);border-left:var(--stroke--hairline) solid var(--dim-grey)}.header-spacer{flex:1}.hint{margin:0 0 var(--space--12);color:var(--text-placeholder);font-size:14px;line-height:20px}.hint-live{color:var(--accent)}.error{margin:var(--space--12) 0 0;padding:var(--space--8) var(--space--12);border-left:var(--stroke--default) solid var(--error);background:#98434329;font-size:14px;line-height:20px}.menu{position:fixed;z-index:50;min-width:190px;padding:var(--space--4);border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);background:var(--bg-surface);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}html:not(.dark-mode) .menu{background:#ededed}.menu button{display:block;width:100%;padding:var(--space--8) var(--space--12);border:0;border-radius:var(--radius--small);background:none;text-align:left;font-size:14px;line-height:20px;cursor:pointer;transition:background-color var(--ease)}.menu button:hover:not(:disabled){background:var(--dim-grey);color:var(--persist-text-bright)}.menu button:disabled{opacity:.4;cursor:default}.menu button.danger{color:#d27272}.notice{position:fixed;left:50%;bottom:var(--space--24);transform:translate(-50%);z-index:60;max-width:min(560px,calc(100% - 32px));padding:var(--space--12) var(--space--16);border:var(--stroke--default) solid var(--accent);border-radius:var(--radius--medium);background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);font-size:14px;line-height:20px}.drop-veil{position:fixed;inset:var(--space--16);z-index:40;display:grid;place-items:center;border:var(--stroke--default) dashed var(--accent);border-radius:var(--radius--medium);background:var(--bg-glass);backdrop-filter:blur(5px);font-family:var(--headings);font-size:26px;color:var(--accent);pointer-events:none}.empty-page{display:grid;place-content:center;justify-items:start;gap:var(--space--16);min-height:100%;padding:var(--space--40);max-width:620px;margin:0 auto}.empty-page h1{font-size:40px;line-height:44px}.section{padding:var(--space--20) 0 var(--space--4)}.section+.section{border-top:var(--stroke--hairline) solid var(--bg-surface-muted)}.section-title{margin:0 0 var(--space--4);font-size:20px;line-height:24px;font-weight:500}.field{margin:var(--space--16) 0}.field-label,.slider-head label{display:block;margin-bottom:var(--space--8);font-size:14px;line-height:20px}.segmented{display:flex;gap:2px;padding:2px;border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium)}.segmented button{flex:1;min-height:32px;padding:4px var(--space--8);border:0;border-radius:4px;background:transparent;font-size:14px;line-height:18px;font-weight:500;cursor:pointer;transition:background-color var(--ease),color var(--ease)}.segmented button:hover:not(:disabled):not(.on){background:var(--bg-surface-muted)}.segmented button.on{background:var(--dim-grey);color:var(--persist-text-bright)}.segmented button:disabled{opacity:.45;cursor:default}.segmented.stacked{flex-direction:column}.segmented.stacked button{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space--8) var(--space--12);text-align:left}.seg-label{font-weight:600}.seg-hint{font-weight:400;font-size:13px;opacity:.75}.slider{margin:var(--space--16) 0}.slider-head{display:flex;justify-content:space-between;align-items:baseline}.slider-head output{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}input[type=range]{width:100%;accent-color:var(--accent)}.slider-ends{display:flex;justify-content:space-between;font-size:12px;line-height:16px;color:var(--text-placeholder)}.toggle{margin:var(--space--16) 0}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle label{display:flex;gap:var(--space--12);align-items:flex-start;cursor:pointer}.toggle-track{flex:none;position:relative;width:38px;height:24px;margin-top:1px;border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);transition:border-color var(--ease)}.toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:16px;border-radius:var(--radius--small);background:var(--dim-grey);transition:transform var(--ease),background-color var(--ease)}.toggle input:checked+label .toggle-track{border-color:var(--accent)}.toggle input:checked+label .toggle-track:after{transform:translate(14px);background:var(--accent)}.toggle input:focus-visible+label .toggle-track{outline:var(--stroke--default) solid var(--accent);outline-offset:2px}.toggle input:disabled+label{opacity:.5;cursor:default}.toggle-text{display:flex;flex-direction:column;font-weight:500;font-size:16px;line-height:20px}.toggle-hint{font-weight:400;font-size:14px;line-height:20px;color:var(--text-placeholder)}.fold{border-top:var(--stroke--hairline) solid var(--bg-surface-muted)}.fold summary{display:flex;align-items:center;justify-content:space-between;padding:var(--space--16) 0;font-size:20px;line-height:24px;font-weight:500;cursor:pointer;list-style:none}.fold summary::-webkit-details-marker{display:none}.fold summary svg{transition:transform var(--ease)}.fold[open] summary svg{transform:rotate(180deg)}.fold-body{padding-bottom:var(--space--12)}.tips{margin:0 0 var(--space--16);padding-left:18px;font-size:14px;line-height:20px;color:var(--text-placeholder)}.tips li+li{margin-top:var(--space--8)}.colors{display:flex;flex-wrap:wrap;gap:var(--space--8)}.color{position:relative;width:28px;height:28px;border:var(--stroke--hairline) solid var(--dim-grey);border-radius:var(--radius--small);cursor:pointer}.color.on{outline:var(--stroke--default) solid var(--text-primary);outline-offset:2px}.color-custom{background:conic-gradient(#bad70a,#0abed7,#4fa3ff,#b98cf2,#f0592b,#c5a11f,#bad70a)}.color-custom input{position:absolute;inset:0;opacity:0;cursor:pointer}.home{min-height:100%;display:flex;flex-direction:column}.home .header{position:sticky;top:0}.home-main{flex:1;width:100%;max-width:1305px;margin:0 auto;padding:var(--space--60) var(--space--24) var(--space--100)}.home-hero{max-width:760px}.home-hero h1{font-size:clamp(44px,7vw,92px);line-height:1;margin-bottom:var(--space--24)}.lead{margin:0 0 var(--space--30);font-size:22px;line-height:30px;max-width:40ch}.home-projects{margin-top:var(--space--60)}.home-projects-head{display:flex;align-items:center;gap:var(--space--12);margin-bottom:var(--space--24)}.home-projects h2{font-size:40px;line-height:44px}.empty{padding:var(--space--30);border:var(--stroke--default) dashed var(--dim-grey);max-width:640px}.empty p{margin:0 0 var(--space--16)}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space--30)}.card{display:flex;flex-direction:column;gap:var(--space--12);padding-bottom:var(--space--16);border-bottom:var(--stroke--default) solid var(--bg-surface-muted);transition:border-color var(--ease)}.card:hover{border-color:var(--accent)}.card-open{display:flex;flex-direction:column;gap:var(--space--12);color:inherit;text-decoration:none}.thumb{display:block;width:100%;aspect-ratio:16 / 9;background:var(--bg-surface)}.thumb-empty{display:grid;place-items:center;color:var(--text-placeholder);font-size:14px}.card-name{font-size:20px;line-height:24px;font-weight:500}.card-open:hover .card-name{color:var(--accent)}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space--8)}.card-time{font-size:12px;line-height:16px;color:var(--text-placeholder)}.card-actions{display:flex;flex-wrap:wrap;gap:var(--space--4)}.home-foot{display:flex;justify-content:space-between;gap:var(--space--16);padding:var(--space--24);border-top:var(--stroke--hairline) solid var(--bg-surface-muted);font-size:12px;line-height:16px;color:var(--text-placeholder)}.editor{display:grid;grid-template-columns:340px minmax(0,1fr);grid-template-rows:var(--size--header-height) auto minmax(0,1fr);height:100%}.topbar{grid-column:1 / -1;padding:0 var(--space--16);gap:var(--space--12)}.topbar-project{display:flex;align-items:center;gap:var(--space--12);min-width:0;flex:none}.back{font-size:14px;line-height:20px;color:var(--text-placeholder);text-decoration:none;white-space:nowrap;padding-left:var(--space--12);border-left:var(--stroke--hairline) solid var(--dim-grey);transition:color var(--ease)}.back:hover{color:var(--accent)}.project-name{width:190px;height:32px;padding:0 var(--space--8);border:var(--stroke--default) solid transparent;border-radius:var(--radius--medium);background:transparent;font-weight:600;font-size:16px;transition:border-color var(--ease)}.project-name:hover{border-color:var(--dim-grey)}.project-name:focus{border-color:var(--text-primary);background:var(--bg-glass);outline:none}.topbar-end{display:flex;align-items:center;gap:var(--space--12);margin-left:auto;flex:none}.steps{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;gap:var(--space--4);padding:var(--space--8) var(--space--16);border-bottom:var(--stroke--hairline) solid var(--bg-surface-muted);position:relative}.step{display:flex;align-items:center;gap:var(--space--8);height:36px;padding:var(--space--8) 10px;border:var(--stroke--default) solid transparent;border-radius:var(--radius--medium);background:none;font-weight:600;font-size:16px;line-height:16px;color:var(--text-placeholder);cursor:pointer;transition:border-color var(--ease),color var(--ease)}.step:hover:not(:disabled){color:var(--text-primary)}.step.on{border-color:var(--accent);color:var(--accent)}.step.past{color:var(--text-primary)}.step-num{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:var(--radius--small);background:var(--bg-surface-muted);color:var(--text-primary);font-size:12px;line-height:16px}.step.on .step-num{background:var(--accent);color:var(--accent-on)}.step:disabled{opacity:.5;cursor:default}.aspect-select{position:absolute;right:var(--space--16);width:auto;height:36px;font-size:14px;background:transparent}.panel{display:flex;flex-direction:column;min-height:0;border-right:var(--stroke--hairline) solid var(--bg-surface-muted)}.panel-body{flex:1;overflow-y:auto;padding:var(--space--24) var(--space--20) var(--space--30)}.panel-foot{padding:var(--space--16) var(--space--20);border-top:var(--stroke--hairline) solid var(--bg-surface-muted)}.panel-intro{margin-bottom:var(--space--8)}.panel-intro h2{font-size:26px;line-height:32px;margin-bottom:var(--space--8)}.panel-intro p{margin:0 0 var(--space--8);font-size:14px;line-height:20px;color:var(--text-placeholder)}.stage{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg-surface)}.stage-area{position:relative;flex:1;min-height:0;display:grid;place-items:center}.frame{position:relative;overflow:hidden;background:#1b1b1b;outline:var(--stroke--hairline) solid var(--dim-grey)}.frame.is-rendering{outline:var(--stroke--default) solid var(--accent)}.map,.overlay{position:absolute;inset:0}.overlay{pointer-events:none;z-index:1}.maplibregl-ctrl-attrib{font-family:var(--font-body)}.map-controls{position:absolute;right:10px;bottom:42px;z-index:3;display:flex;flex-direction:column;padding:2px;border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.map-ctl{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:4px;background:none;color:var(--text-primary);cursor:pointer;transition:background-color var(--ease),color var(--ease)}.map-ctl+.map-ctl{border-top:var(--stroke--hairline) solid var(--bg-surface-muted);border-radius:0 0 4px 4px}.map-ctl:hover:not([aria-disabled=true]){background:var(--dim-grey);color:var(--persist-text-bright)}.map-ctl[aria-disabled=true]{opacity:.4;cursor:default}.map-ctl svg{transition:transform .12s linear}@media(max-width:900px){.editor{grid-template-columns:1fr;grid-template-rows:auto auto 56vh auto;height:auto;min-height:100%}.topbar{flex-wrap:wrap;height:auto;padding:var(--space--8) var(--space--12)}.scenes{order:3;flex-basis:100%}.steps{justify-content:flex-start;overflow-x:auto}.aspect-select{position:static;margin-left:auto}.stage{grid-row:3}.panel{grid-row:4;border-right:0}.step{flex:none}.legs{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.topbar.app-header{margin:var(--space--12) var(--space--12) 0;height:var(--size--header-height);padding:0 var(--space--12);gap:var(--space--16);justify-content:space-between;border:0;border-radius:12px;background:var(--dark--semitransp-white);color:var(--persist-text-bright)}.home-header{position:sticky;top:var(--space--12)}.app-header-start{display:flex;align-items:center;gap:var(--space--30);min-width:0}.app-logo{display:flex;flex:none}.app-logo img{display:block;width:205px;height:auto}.breadcrumb{display:flex;align-items:center;gap:6px;min-width:0;font-size:16px;line-height:20px}.crumb-link,.crumb-current{font-weight:600;color:var(--persist-text-bright);text-decoration:none;white-space:nowrap;transition:color var(--ease)}.crumb-link:hover,.crumb-link:active,.crumb-link:focus-visible{color:var(--persist-signal-green)}.crumb-sep{font-weight:600}.app-header .project-name{width:260px;height:32px;padding:0 6px;margin-left:-6px;font-weight:400;color:var(--persist-text-bright)}.app-header .topbar-end{gap:var(--space--16)}.icon-button{display:grid;place-items:center;width:var(--size--control-height);height:var(--size--control-height);padding:0;border:0;border-radius:var(--radius--medium);background:transparent;color:var(--persist-text-bright);cursor:pointer;transition:color var(--ease)}.icon-button:hover,.icon-button:active,.icon-button.is-active{color:var(--persist-signal-green)}.editor{grid-template-columns:340px minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr)}.editor>.topbar{grid-column:1 / -1}.editor>.steps{grid-column:2;grid-row:2;justify-content:flex-start;padding:var(--space--8) var(--space--12) var(--space--8) 0;border-bottom:0}.editor>.steps .aspect-select{position:static;margin-left:auto}.editor>.panel{grid-column:1;grid-row:3;border-right:0}.editor>.stage{grid-column:2;grid-row:3;margin:0 var(--space--12) var(--space--12) 0;border-radius:12px;overflow:hidden}.panel-foot,.stage .timeline{border-top:0}.floating{position:absolute;z-index:3;display:flex;align-items:flex-start;gap:2px}.floating .map-toolbar,.floating .legs,.floating .search,.floating .map-btn,.floating .popover{position:static;transform:none}.pos-toolbar{top:var(--space--12);left:var(--space--12)}.pos-search{top:var(--space--12);right:var(--space--12)}.pos-legs{left:var(--space--12);top:64px}.pos-popover{z-index:4}.grip{display:grid;place-items:center;flex:none;width:16px;height:var(--size--control-height);padding:0;border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--text-placeholder);cursor:grab;touch-action:none}.grip:hover{color:var(--text-primary)}.is-dragging,.is-dragging *{cursor:grabbing!important;user-select:none}@media(max-width:900px){.editor{grid-template-columns:1fr;grid-template-rows:auto auto 56vh auto}.editor>.steps,.editor>.panel,.editor>.stage{grid-column:1}.editor>.steps{grid-row:2;padding-left:var(--space--12)}.editor>.stage{grid-row:3;margin-left:var(--space--12)}.editor>.panel{grid-row:4}.app-logo img{width:150px}.app-header .project-name{width:140px}}.editor>.steps .aspect-select{width:auto;height:36px;padding:0 var(--space--8);border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);background-color:transparent;color:var(--text-primary);font-size:14px;transition:color var(--ease),border-color var(--ease)}.editor>.steps .aspect-select:hover,.editor>.steps .aspect-select:focus,.editor>.steps .aspect-select:active{border-color:var(--persist-signal-green);color:var(--persist-signal-green);outline:none}html.dark-mode select{color-scheme:dark}select option{background-color:var(--bg-page);color:var(--text-primary)}@media(min-width:901px){html.editor-open,html.editor-open body{height:100%;overflow:hidden;overscroll-behavior:none}html.editor-open .editor{height:100vh;height:100dvh}}.panel-body,.legs ol,.look-grid{overscroll-behavior:contain}.app-version{grid-column:1;grid-row:2;align-self:center;padding-left:20px;font-size:14px;line-height:20px;color:var(--text-placeholder);white-space:nowrap}@media(max-width:900px){.app-version{display:none}}@media(max-width:767px){.topbar.app-header{flex-wrap:nowrap;height:var(--size--header-height);padding:0 var(--space--12);gap:var(--space--12)}.app-header-start{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:0}.app-logo img{width:205px}.breadcrumb{max-width:100%}.app-header .project-name{width:auto;min-width:0;flex:1 1 auto;height:20px;line-height:20px}.app-header .topbar-end{flex:none}}@media(max-width:479px){.app-logo img{width:170px}.app-header .topbar-end{gap:var(--space--8)}}@media(max-width:900px){.editor{grid-template-columns:minmax(0,1fr)}.editor>.steps{min-width:0;overflow-x:auto;scrollbar-width:none}.editor>.steps::-webkit-scrollbar{display:none}}@media(max-width:767px){.app-header-start{flex:1 1 auto}}.topbar.app-header :focus-visible{outline-color:var(--persist-signal-green)}.nav-text-link{display:flex;align-items:center;padding:6px var(--space--4);font-family:var(--font-body);font-size:16px;line-height:16px;font-weight:600;color:var(--persist-text-bright);text-decoration:none;white-space:nowrap;transition:color .2s ease}.nav-text-link:hover{color:var(--persist-signal-green)}.bmc-button{display:flex;flex:none;align-items:center;justify-content:center;height:var(--size--control-height);padding:var(--space--12) var(--space--16);border:var(--stroke--default) solid var(--persist-signal-green);border-radius:var(--radius--medium);background:transparent;color:var(--persist-signal-green);text-decoration:none;transition:background-color .35s ease}.bmc-button:hover{border-color:var(--persist-signal-on)}.bmc-logo,.bmc-cup{display:block;flex:none}.bmc-cup{display:none}.bmc-coffee{fill:var(--persist-signal-on)}.steps-end{display:flex;flex:none;align-items:center;gap:var(--space--4);margin-left:auto}.editor>.steps .steps-end .aspect-select{margin-left:0}.steps .icon-button{width:36px;height:36px;color:var(--text-primary)}.steps .icon-button:hover,.steps .icon-button:active,.steps .icon-button.is-active{color:var(--accent)}.editor>.steps .aspect-select:hover,.editor>.steps .aspect-select:focus,.editor>.steps .aspect-select:active{border-color:var(--accent);color:var(--accent)}@media(max-width:999px){.bmc-button{width:var(--size--control-height);padding:0}.bmc-logo{display:none}.bmc-cup{display:block}}@media(max-width:767px){.app-logo{max-width:100%}.app-logo img{max-width:100%;height:auto}}@media(max-width:479px){.nav-text-more{display:none}}.nx-bmc{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px;line-height:20px}.nx-bmc[hidden]{display:none}.nx-bmc-backdrop{position:absolute;inset:0;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}.nx-bmc-panel{position:relative;display:flex;flex-direction:column;width:440px;max-width:100%;max-height:calc(100vh - 48px);background:var(--color--nassau-gray);color:var(--color--text);border-radius:6px;box-shadow:0 30px 80px #00000073;opacity:0;transform:translateY(16px) scale(.98);transition:opacity .3s ease,transform .3s cubic-bezier(.2,.8,.2,1)}.nx-bmc.is-open .nx-bmc-backdrop{opacity:1}.nx-bmc.is-open .nx-bmc-panel{opacity:1;transform:none}.nx-bmc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 24px 16px}.nx-bmc-eyebrow{color:var(--color--signal-green);font-size:14px;line-height:20px}.nx-bmc-title{font-size:26px;line-height:32px;font-weight:500}.nx-bmc-close{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border:2px solid var(--dim-grey);border-radius:6px;background:transparent;color:var(--color--signal-green);cursor:pointer;transition:border-color .2s ease}.nx-bmc-close:hover,.nx-bmc-close:focus-visible{border-color:var(--color--signal-green);outline:none}.nx-bmc-frame{position:relative;height:600px;max-height:calc(100vh - 220px);margin:0 24px;border-radius:6px;overflow:hidden;background:#fff}.nx-bmc-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;opacity:0;transition:opacity .3s ease}.nx-bmc.is-loaded .nx-bmc-frame iframe{opacity:1}.nx-bmc-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;color:#555;font-size:14px}.nx-bmc-loading span{width:16px;height:16px;border:2px solid #ccc;border-top-color:#555;border-radius:50%;animation:nxspin .8s linear infinite}.nx-bmc.is-loaded .nx-bmc-loading{display:none}@keyframes nxspin{to{transform:rotate(360deg)}}.nx-bmc-foot{padding:16px 24px 24px;color:var(--color--placeholder);font-size:14px;line-height:20px}.nx-bmc-foot a{color:var(--color--signal-green);text-decoration:none;white-space:nowrap}.nx-bmc-lock,.nx-bmc-lock body{overflow:hidden}@media(max-width:479px){.nx-bmc{padding:0;align-items:flex-end}.nx-bmc-panel{width:100%;max-height:94vh;border-radius:6px 6px 0 0;transform:translateY(40px)}.nx-bmc-frame{height:70vh;max-height:none;margin:0 16px}.nx-bmc-head{padding:20px 16px 12px}.nx-bmc-foot{padding:12px 16px 20px}}@media(prefers-reduced-motion:reduce){.nx-bmc-panel,.nx-bmc-backdrop{transition:none}}.toggle,.panel-body{position:relative}.cv-logo{display:flex;align-items:center;gap:10px;height:25px;color:var(--persist-signal-green);white-space:nowrap}.cv-logo svg{flex:none}.cv-logo-word{font-size:21px;line-height:25px;font-weight:400;letter-spacing:-.01em;color:var(--persist-text-bright)}.cv-logo-word b{font-weight:700;color:var(--persist-signal-green)}.tool-palette,.layers,.zoom-controls,.stage-hint,.getting-started{border:var(--stroke--default) solid var(--dim-grey);border-radius:var(--radius--medium);background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.stage-area{display:block;overflow:hidden}.viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}.cur-brush,.cur-pencil,.cur-eraser,.cur-line,.cur-rect,.cur-ellipse,.cur-select,.cur-lasso,.cur-wand{cursor:crosshair}.cur-fill,.cur-picker{cursor:cell}.cur-move{cursor:move}.cur-hand,.cur-grab{cursor:grab}.viewport.is-panning{cursor:grabbing}.paper{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 0 0 1px var(--dim-grey),0 8px 40px #00000040}.paper-bg,.layer,.layer-host,.sel-tint{position:absolute;inset:0}.paper-bg.is-transparent{background-color:#fff;background-image:conic-gradient(#e2e2e2 25%,transparent 0 50%,#e2e2e2 0 75%,transparent 0);background-size:16px 16px}html.dark-mode .paper-bg.is-transparent{background-color:#2a2a2a;background-image:conic-gradient(#333 25%,transparent 0 50%,#333 0 75%,transparent 0)}.layer-host canvas,.sel-tint canvas,.float-host canvas{display:block;width:100%;height:100%}.sel-tint{pointer-events:none}.is-pixelated canvas{image-rendering:pixelated}.layer-vector svg,.trace-preview svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.float{position:absolute;transform-origin:50% 50%}.float-host{width:100%;height:100%}.view-overlay .layer-raster .layer-host{opacity:var(--src-opacity, .3)}.view-vector .layer-raster{visibility:hidden}.view-source .trace-preview{display:none}.view-outline .layer-raster .layer-host{opacity:.25}.view-outline .trace-preview path,.view-outline .layer-vector path{fill:none!important;stroke:#0abed7!important;stroke-width:1px!important;vector-effect:non-scaling-stroke}.stage .overlay{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}.ants{fill:none;stroke:#fff;stroke-width:1.5px;stroke-dasharray:5 4;filter:drop-shadow(0 0 1px #000);animation:ants .6s linear infinite}@keyframes ants{to{stroke-dashoffset:-9}}.float-frame{fill:none;stroke:#0abed7;stroke-width:1.5px}.handle{fill:#fff;stroke:#0e0e0e;stroke-width:1.5px;pointer-events:all;touch-action:none}.handle-nw,.handle-se{cursor:nwse-resize}.handle-ne,.handle-sw{cursor:nesw-resize}.handle-n,.handle-s{cursor:ns-resize}.handle-e,.handle-w{cursor:ew-resize}.brush-cursor{fill:none;stroke:#fff;stroke-width:1px;filter:drop-shadow(0 0 1px #000)}.stage .frame-size{position:absolute;z-index:1;font-size:12px;line-height:16px;color:var(--text-placeholder);white-space:nowrap;pointer-events:none}.zoom-controls{position:absolute;right:var(--space--12);bottom:var(--space--12);z-index:3;display:flex;flex-direction:column;padding:2px}.zoom-controls .map-ctl{border-radius:4px}.zoom-controls .map-ctl+.map-ctl{border-radius:0}.zoom-100{font-size:12px;font-weight:600}.pos-tools{top:var(--space--12);left:var(--space--12)}.pos-layers{top:var(--space--12);right:var(--space--12)}.tool-palette{display:flex;flex-direction:column;gap:var(--space--4);padding:var(--space--4)}.tool-group{display:flex;flex-direction:column;gap:2px}.tool-group+.tool-group,.tool-colors+.tool-group{padding-top:var(--space--4);border-top:var(--stroke--hairline) solid var(--bg-surface-muted)}.tool{display:grid;place-items:center;width:36px;height:36px;padding:0;border:var(--stroke--default) solid transparent;border-radius:var(--radius--medium);background:none;color:var(--text-primary);cursor:pointer;transition:color var(--ease),border-color var(--ease),background-color var(--ease)}.tool:hover:not(:disabled){background:var(--bg-surface-muted)}.tool.on{border-color:var(--accent);color:var(--accent)}.tool:disabled{opacity:.35;cursor:default}.tool-colors{position:relative;width:36px;height:40px;margin-top:var(--space--4);padding-top:var(--space--4);border-top:var(--stroke--hairline) solid var(--bg-surface-muted)}.swatch{position:absolute;width:20px;height:20px;border:var(--stroke--default) solid var(--text-primary);border-radius:var(--radius--small)}.swatch-1{left:2px;top:6px;z-index:1}.swatch-2{left:12px;top:16px}.swap{position:absolute;right:-4px;top:2px;display:grid;place-items:center;width:18px;height:18px;padding:0;border:0;background:none;color:var(--text-placeholder);cursor:pointer}.swap:hover{color:var(--text-primary)}.swap svg{width:12px;height:12px}.layers{width:268px;padding:var(--space--4);font-size:14px;line-height:20px}.layers-head{display:flex;align-items:center;gap:var(--space--4)}.layers-title{display:flex;align-items:center;gap:var(--space--8);flex:1;height:32px;padding:0 var(--space--8);border:0;border-radius:var(--radius--medium);background:none;color:var(--text-primary);font-weight:600;cursor:pointer;text-align:left}.layers-title svg{margin-left:auto;transition:transform var(--ease)}.layers.is-closed .layers-title svg{transform:rotate(-90deg)}.layers-count{font-size:12px;font-weight:500;color:var(--text-placeholder)}.mini-btn{display:inline-grid;place-items:center;flex:none;min-width:30px;height:30px;padding:0 4px;border:0;border-radius:var(--radius--medium);background:none;color:var(--text-primary);cursor:pointer;transition:background-color var(--ease),color var(--ease)}.mini-btn:hover:not(:disabled){background:var(--bg-surface-muted)}.mini-btn:disabled{opacity:.35;cursor:default}.mini-btn.danger:hover:not(:disabled){color:var(--error)}html.dark-mode .mini-btn.danger:hover:not(:disabled){color:#e07a7a}.mini-text{font-size:12px;font-weight:600;padding:0 8px}.layer-list{list-style:none;margin:var(--space--4) 0;padding:0;max-height:min(320px,40vh);overflow-y:auto;overscroll-behavior:contain}.layer-row{display:flex;align-items:center;gap:var(--space--8);min-height:44px;padding:3px var(--space--4);border:var(--stroke--default) solid transparent;border-radius:var(--radius--medium);cursor:pointer;transition:border-color var(--ease),background-color var(--ease)}.layer-row:hover{background:var(--bg-surface-muted)}.layer-row.on{border-color:var(--accent)}.layer-row.is-hidden .layer-thumb,.layer-row.is-hidden .layer-text{opacity:.45}.layer-row .eye{min-width:26px;width:26px;height:26px;color:var(--text-placeholder)}.layer-row .eye[aria-pressed=true]{color:var(--text-primary)}.layer-thumb{flex:none;border-radius:var(--radius--small);background-color:#fff;background-image:conic-gradient(#e2e2e2 25%,transparent 0 50%,#e2e2e2 0 75%,transparent 0);background-size:8px 8px;outline:var(--stroke--hairline) solid var(--dim-grey)}.layer-text{display:flex;flex-direction:column;min-width:0;flex:1}.layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.layer-name-input{width:100%;height:26px;padding:0 4px;border:var(--stroke--default) solid var(--accent);border-radius:var(--radius--small);background:var(--bg-page);color:var(--text-primary);font-size:14px}.layer-kind{display:flex;align-items:center;gap:4px;font-size:12px;line-height:16px;color:var(--text-placeholder)}.layer-props{display:grid;grid-template-columns:1fr 104px;align-items:center;gap:var(--space--8);padding:var(--space--4) var(--space--4) 0}.layer-prop{display:grid;grid-template-columns:auto 1fr 38px;align-items:center;gap:6px;font-size:12px}.layer-prop output{text-align:right;color:var(--text-placeholder)}.layer-props select{height:30px;font-size:13px;padding:0 4px}.layer-actions{display:flex;align-items:center;gap:2px;padding:var(--space--4) 0 0}.layer-actions .danger{margin-left:auto}.button-row{display:flex;flex-wrap:wrap;gap:var(--space--4);margin-bottom:var(--space--8)}.button-row .btn svg{margin-right:4px}.btn-small svg{vertical-align:-4px}.btn[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.add-image{margin-top:var(--space--8)}.color-now{display:flex;align-items:center;gap:var(--space--12);margin-bottom:var(--space--12)}.color-big{position:relative;width:40px;height:40px;border:var(--stroke--default) solid var(--text-primary);border-radius:var(--radius--medium);cursor:pointer;overflow:hidden}.color-big input{position:absolute;inset:0;opacity:0;cursor:pointer}.color-hex{font-variant-numeric:tabular-nums;font-size:14px;flex:1}.colors.recent{margin-top:var(--space--8)}.color-small{width:22px;height:22px}.size-row{display:flex;align-items:center;gap:var(--space--8);margin:var(--space--4) 0 var(--space--8)}.size-input{width:84px;height:36px;font-variant-numeric:tabular-nums}.size-row .input:not(.size-input){flex:1;height:36px;min-width:0}.field-label{margin:var(--space--12) 0 var(--space--4);font-size:14px;line-height:20px;font-weight:600}.shortcuts{font-size:14px;line-height:20px}kbd{display:inline-block;min-width:20px;padding:0 5px;border:var(--stroke--hairline) solid var(--dim-grey);border-radius:var(--radius--small);font-family:inherit;font-size:12px;line-height:18px;text-align:center}.panel-foot-stack{display:flex;flex-direction:column;gap:var(--space--8)}.panel .segmented+.hint,.panel .segmented+.segmented,.panel .slider+.segmented,.panel .segmented+.slider,.panel .segmented+.toggle{margin-top:var(--space--8)}.preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space--4);margin-bottom:var(--space--8)}.preset{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space--8) 10px;border:var(--stroke--default) solid var(--bg-surface-muted);border-radius:var(--radius--medium);background:none;color:var(--text-primary);text-align:left;cursor:pointer;transition:border-color var(--ease)}.preset:hover{border-color:var(--dim-grey)}.preset.on{border-color:var(--accent)}.preset-name{font-weight:600;font-size:14px;line-height:18px}.preset.on .preset-name{color:var(--accent)}.preset-hint{font-size:12px;line-height:16px;color:var(--text-placeholder)}.preset-remove{position:absolute;top:2px;right:6px;color:var(--text-placeholder);font-size:16px}.preset-remove:hover{color:var(--text-primary)}.trace-status{display:flex;align-items:center;gap:var(--space--8);min-height:24px;margin-top:var(--space--12);font-size:14px;line-height:20px;color:var(--text-placeholder);font-variant-numeric:tabular-nums}.error-text{color:var(--error)}html.dark-mode .error-text{color:#e07a7a}.spinner{width:14px;height:14px;border:2px solid var(--dim-grey);border-top-color:var(--accent);border-radius:50%;animation:nxspin .8s linear infinite}.export-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space--4);margin-bottom:var(--space--8)}.export-facts{margin:var(--space--8) 0 0;font-size:14px;line-height:20px;color:var(--text-placeholder);font-variant-numeric:tabular-nums}.callout{margin-top:var(--space--12);padding:var(--space--12);border:var(--stroke--default) solid var(--accent);border-radius:var(--radius--medium);font-size:14px;line-height:20px}.callout p{margin:0 0 var(--space--8)}.btn-wide svg{vertical-align:-4px;margin-right:6px}.getting-started{position:absolute;left:50%;bottom:var(--space--24);transform:translate(-50%);z-index:2;display:flex;flex-direction:column;gap:var(--space--4);width:min(440px,calc(100% - 32px));padding:var(--space--12) var(--space--16);border-color:var(--accent);font-size:14px;line-height:20px;pointer-events:none}.getting-started strong{color:var(--accent)}.stage-hint{position:absolute;left:50%;top:var(--space--12);transform:translate(-50%);z-index:2;display:flex;align-items:center;gap:var(--space--12);max-width:calc(100% - 120px);padding:var(--space--8) var(--space--8) var(--space--8) var(--space--12);font-size:14px;line-height:20px}.stage .drop-veil{z-index:5}.thumb-canvas{display:grid;place-items:center;overflow:hidden;background-color:var(--bg-surface)}.thumb-canvas img{max-width:100%;max-height:100%;object-fit:contain;box-shadow:0 2px 12px #0003}.home-size{width:auto;height:var(--size--control-height)}.home-hero .button-group+.button-group{margin-top:var(--space--8)}@media(max-width:900px){.tool-palette{display:grid;grid-template-columns:36px 36px;gap:2px}.tool-group{display:contents}.tool-group+.tool-group,.tool-colors+.tool-group{padding:0;border:0}.tool-colors{grid-column:1 / -1;width:72px;height:36px;margin:2px 0;padding:0;border:0}.swatch-1{left:8px;top:4px}.swatch-2{left:20px;top:12px}.swap{right:8px;top:8px}.layers{width:220px}.layer-list{max-height:30vh}.stage-hint{max-width:calc(100% - 80px);flex-wrap:wrap}}@media(max-width:479px){.cv-logo-word{font-size:18px}.layers{width:196px}.layer-props{grid-template-columns:1fr}}.app-logo{text-decoration:none}.segmented:not(.stacked) .seg-hint{display:block;font-size:12px;line-height:16px}.panel .segmented button{color:var(--text-primary)}.panel .segmented button.on{color:var(--persist-text-bright)}
