@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/caveat-cyrillic-ext-500-normal-DcrB4vVx.woff2)format("woff2"),url(/assets/caveat-cyrillic-ext-500-normal-DqTXtm5N.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/caveat-cyrillic-500-normal-DpMZbbjM.woff2)format("woff2"),url(/assets/caveat-cyrillic-500-normal-DLSfp5IU.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/caveat-latin-ext-500-normal-jKqJW7bC.woff2)format("woff2"),url(/assets/caveat-latin-ext-500-normal-wUUXxlbS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Caveat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/caveat-latin-500-normal-B9SDL8cy.woff2)format("woff2"),url(/assets/caveat-latin-500-normal-Do9veZfZ.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-cyrillic-ext-700-normal-CrK2-ngJ.woff2)format("woff2"),url(/assets/caveat-cyrillic-ext-700-normal-DjFGiEhD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-cyrillic-700-normal-BIyejhEL.woff2)format("woff2"),url(/assets/caveat-cyrillic-700-normal-Bhcx9qBB.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-ext-700-normal-DFbRgDry.woff2)format("woff2"),url(/assets/caveat-latin-ext-700-normal-DjJQd59I.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Caveat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/caveat-latin-700-normal-D8_1Nw6V.woff2)format("woff2"),url(/assets/caveat-latin-700-normal-cPyBTTZN.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fbfaf6;--paper-deep:#f4f1e9;--ink:#1f1e1b;--muted:#7c776d;--line:#e7e2d7;--panel:#fffdf9;--accent:#5b57d1;--accent-soft:#eeecfd;--danger:#c5534b;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow-panel:0 2px 4px #1f1e1b0a, 0 22px 48px -20px #1f1e1b61}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;overflow:hidden}button{font-family:inherit}::selection{background:#5b57d138}button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #5b57d18c}.app{position:fixed;inset:0}.board{touch-action:none;background-color:var(--paper);background-image:radial-gradient(circle,#685f4e2b 1px,#0000 1.25px);background-repeat:repeat;position:absolute;inset:0;overflow:hidden}.board-canvas{width:100%;height:100%;display:block}.topbar{z-index:30;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;inset:14px 16px auto 18px}.brand{-webkit-backdrop-filter:blur(18px)saturate(1.25);backdrop-filter:blur(18px)saturate(1.25);pointer-events:auto;background:#ffffffbd;border:1px solid #1f1e1b12;border-radius:16px;align-items:center;gap:10px;padding:7px 15px 7px 7px;display:flex;box-shadow:0 1px 1px #1f1e1b0a,0 12px 32px -16px #1f1e1b52}.brand-mark{color:#fff;background:linear-gradient(145deg,#6d68e7,#4a45b9);border-radius:10px;place-items:center;width:35px;height:35px;display:grid;box-shadow:inset 0 1px #ffffff47,0 6px 14px -6px #4a45b9cc}.brand-mark svg{width:25px;height:25px}.brand-copy{flex-direction:column;line-height:1;display:flex}.brand-name{letter-spacing:.01em;color:var(--ink);font-family:Caveat,cursive;font-size:27px;font-weight:700;position:relative;top:1px}.brand-tag{color:var(--muted);letter-spacing:.17em;text-transform:uppercase;margin-top:2px;font-size:8.5px;font-weight:650}.top-actions{pointer-events:auto;align-items:center;gap:8px;display:flex}.icon-button,.export-button{transition:background .14s,color .14s,transform .14s,box-shadow .14s}.icon-button{color:#575249;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;background:#ffffffc2;border:1px solid #1f1e1b12;border-radius:11px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 8px 22px -14px #1f1e1b59}.icon-button:hover:not(:disabled){color:var(--ink);background:#fff;transform:translateY(-1px)}.icon-button:disabled{opacity:.32;cursor:default}.export-button{background:var(--accent);color:#fff;letter-spacing:.01em;cursor:pointer;border:none;border-radius:11px;align-items:center;gap:7px;height:38px;padding:0 16px 0 13px;font-size:12.5px;font-weight:650;display:flex;box-shadow:inset 0 1px #fff3,0 10px 24px -10px #5b57d1e6}.export-button:hover:not(:disabled){background:#4e4ac2;transform:translateY(-1px)}.export-button:disabled{opacity:.34;cursor:default}.toolbar{z-index:30;-webkit-backdrop-filter:blur(18px)saturate(1.3);backdrop-filter:blur(18px)saturate(1.3);background:#ffffffd1;border:1px solid #1f1e1b14;border-radius:15px;flex-direction:column;gap:3px;padding:6px;display:flex;position:fixed;top:50%;left:18px;transform:translateY(-50%);box-shadow:0 2px 4px #1f1e1b0a,0 18px 40px -20px #1f1e1b66}.tool{color:#57524a;cursor:pointer;background:0 0;border:none;border-radius:10px;place-items:center;width:42px;height:42px;transition:background .12s,color .12s,box-shadow .12s;display:grid;position:relative}.tool:hover:not(:disabled){color:var(--ink);background:#f2efe7}.tool.active{background:var(--accent);color:#fff;box-shadow:0 6px 15px -6px #5b57d1cc}.tool.active:hover{background:var(--accent);color:#fff}.tool:disabled{opacity:.28;color:inherit;cursor:default;background:0 0}.toolbar-sep{background:#1f1e1b17;height:1px;margin:4px 7px}.tool[data-tip]:after{z-index:45;color:#fff;content:attr(data-tip);opacity:0;pointer-events:none;white-space:nowrap;background:#23211e;border-radius:7px;padding:6px 9px;font-size:11.5px;font-weight:500;line-height:1.2;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%)translate(-4px);box-shadow:0 8px 20px #00000038}.tool:hover:after{opacity:1;transform:translateY(-50%)translate(0)}.style-panel{z-index:29;width:252px;max-height:calc(100vh - 130px);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);background:#fffdf9f0;border:1px solid #1f1e1b14;border-radius:17px;padding:15px 15px 13px;animation:.16s ease-out panel-in;position:fixed;top:50%;left:80px;overflow-y:auto;transform:translateY(-50%)}@keyframes panel-in{0%{opacity:0;transform:translateY(-50%)translate(-6px)scale(.985)}to{opacity:1;transform:translateY(-50%)translate(0)scale(1)}}.style-panel::-webkit-scrollbar{width:8px}.style-panel::-webkit-scrollbar-thumb{background:#ddd6c8 padding-box padding-box;border:2px solid #0000;border-radius:99px}.style-section+.style-section{border-top:1px solid #1f1e1b0f;margin-top:12px;padding-top:12px}.style-label{color:#948d80;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;font-size:9.5px;font-weight:700}.swatch-row{flex-wrap:wrap;gap:5px;display:flex}.swatch{cursor:pointer;border:1px solid #1f1e1b1f;border-radius:8px;width:23px;height:23px;padding:0;transition:transform .12s,box-shadow .12s;position:relative}.swatch:hover{transform:scale(1.09)}.swatch.selected{box-shadow:0 0 0 2px #fffdf9, 0 0 0 3.5px var(--accent)}.swatch.transparent{background:repeating-linear-gradient(135deg,#fff 0 5px,#f1eee6 5px 7px)}.swatch.transparent:after{content:"";opacity:.6;background:linear-gradient(to top right,#0000 calc(50% - .8px),#cd5b52 calc(50% - .8px) calc(50% + .8px),#0000 calc(50% + .8px));border-radius:4px;position:absolute;inset:3px}.option-row{gap:6px;display:flex}.fill-options{margin-top:7px}.option{color:#6f6a60;cursor:pointer;background:#fffdfa;border:1px solid #e7e2d8;border-radius:8px;flex:1;place-items:center;min-width:0;height:30px;padding:0;transition:border-color .12s,background .12s,color .12s;display:grid}.option:hover{color:var(--ink);border-color:#cfc8ba}.option.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.width-preview{background:currentColor;border-radius:2px;width:22px}.stroke-preview{background:currentColor;border-radius:2px;width:24px;height:2px}.stroke-preview.dashed{background:repeating-linear-gradient(90deg,currentColor 0 5px,#0000 5px 9px)}.stroke-preview.dotted{background:repeating-linear-gradient(90deg,currentColor 0 2px,#0000 2px 6px)}.fill-preview{opacity:.85;border:1px solid;border-radius:4px;width:18px;height:18px;display:block}.fill-preview.hachure{background:repeating-linear-gradient(45deg,currentColor 0 1.3px,#0000 1.3px 5px)}.fill-preview.cross-hatch{background:repeating-linear-gradient(45deg,currentColor 0 1.2px,#0000 1.2px 5.5px),repeating-linear-gradient(-45deg,currentColor 0 1.2px,#0000 1.2px 5.5px)}.fill-preview.solid{background:currentColor}.fill-preview.dots{background:radial-gradient(circle,currentColor 1.1px,#0000 1.4px) 0 0/5px 5px}.font-option{font-family:Caveat,cursive;font-size:17px;font-weight:700}.actions-section{padding-bottom:1px}.action-row{gap:6px;display:flex}.action-button{color:#6c675d;cursor:pointer;background:#fbf9f4;border:1px solid #e7e2d8;border-radius:8px;flex:1;place-items:center;height:31px;transition:background .12s,color .12s,border-color .12s;display:grid}.action-button:hover{color:var(--ink);background:#f5f1e8;border-color:#d7d0c3}.action-button.danger:hover{color:var(--danger);background:#fbefed;border-color:#e4b7b2}.zoom-bar{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffd1;border:1px solid #1f1e1b14;border-radius:12px;align-items:center;gap:2px;padding:4px;display:flex;position:fixed;bottom:18px;left:18px;box-shadow:0 2px 4px #1f1e1b0a,0 16px 36px -20px #1f1e1b66}.zoom-button,.zoom-value{color:#5c574e;cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;height:30px;display:grid}.zoom-button{width:30px}.zoom-value{min-width:48px;font-size:11.5px;font-weight:650}.zoom-button:hover:not(:disabled),.zoom-value:hover{color:var(--ink);background:#f1eee6}.zoom-button:disabled{opacity:.3;cursor:default}.zoom-sep{background:#1f1e1b1a;width:1px;height:16px;margin:0 3px}.status-pill{z-index:30;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#6d675d;cursor:pointer;background:#fffc;border:1px solid #1f1e1b14;border-radius:999px;align-items:center;gap:8px;height:34px;padding:0 13px;font-size:11.5px;font-weight:550;transition:background .14s,color .14s;display:flex;position:fixed;bottom:18px;right:18px;box-shadow:0 10px 26px -18px #1f1e1b66}.status-pill:hover{color:var(--ink);background:#fff}.status-dot{background:#3aa657;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #3aa65721}.status-pill.loading .status-dot{background:#dfa22f;animation:1.3s ease-in-out infinite pulse;box-shadow:0 0 0 3px #dfa22f21}.status-pill.error .status-dot{background:#c5534b;box-shadow:0 0 0 3px #c5534b21}@keyframes pulse{50%{opacity:.45;transform:scale(.82)}}.empty-hint{z-index:12;pointer-events:none;text-align:center;max-width:560px;padding:0 20px;animation:.55s ease-out .25s both hint-in;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}@keyframes hint-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.empty-title{letter-spacing:.01em;color:#2a2822;font-family:Caveat,cursive;font-size:40px;font-weight:700;line-height:1}.empty-hint p{color:#7f796e;max-width:440px;margin:10px auto 0;font-size:12.5px;line-height:1.65}.empty-kinds{flex-wrap:wrap;justify-content:center;gap:5px;margin-top:12px;display:flex}.empty-kinds span{color:#989184;letter-spacing:.02em;background:#ffffff8c;border:1px solid #1f1e1b0f;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:500}.toast{z-index:60;color:#f9f7f2;background:#24221f;border-radius:999px;align-items:center;gap:8px;padding:9px 15px;font-size:12px;font-weight:500;animation:.18s ease-out toast-in;display:flex;position:fixed;bottom:32px;left:50%;transform:translate(-50%);box-shadow:0 16px 38px -12px #00000080}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(6px)scale(.96)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.toast-spark{color:#b9b3ff;font-size:12px}.text-editor{z-index:22;resize:none;caret-color:var(--accent);white-space:pre;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#fffdf8d6;border:1.5px dashed #5b57d1bf;border-radius:5px;outline:none;margin:0;padding:1px 2px;font-family:Caveat,cursive;font-weight:500;position:fixed;overflow:hidden;box-shadow:0 0 0 3px #5b57d114}.text-editor::placeholder{color:#46423a4d}.text-editor:focus-visible{outline:none}.modal-backdrop{z-index:80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#23201b52;place-items:center;padding:20px;animation:.18s fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:#fffdf8;border:1px solid #1f1e1b14;border-radius:22px;width:min(620px,100%);max-height:calc(100vh - 40px);padding:30px 32px 26px;animation:.2s cubic-bezier(.2,.8,.3,1) modal-in;position:relative;overflow:auto;box-shadow:0 30px 80px -20px #1f1e1b80}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-close{color:#6e685e;cursor:pointer;background:#f3f0e8;border:none;border-radius:9px;place-items:center;width:32px;height:32px;display:grid;position:absolute;top:16px;right:16px}.modal-close:hover{color:var(--ink);background:#eae6dc}.help-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:6px;margin-bottom:10px;font-size:10px;font-weight:700;display:flex}.help-modal h2{color:var(--ink);letter-spacing:.01em;margin:0 0 12px;font-family:Caveat,cursive;font-size:46px;font-weight:700;line-height:1}.help-lede{color:#6f695e;max-width:520px;margin:0 0 22px;font-size:13.5px;line-height:1.65}.help-grid{border-top:1px solid #ece7dc;border-bottom:1px solid #ece7dc;grid-template-columns:1fr 1fr 1fr;gap:22px;padding:18px 0;display:grid}.help-grid h3{color:#a49d90;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:9.5px;font-weight:700}.shortcut-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.shortcut-list li{color:#5f5a50;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}kbd{color:#615b51;font-family:var(--mono);white-space:nowrap;background:#f2eee5;border:1px solid #e2dcd0;border-bottom-width:2px;border-radius:5px;padding:3px 6px;font-size:9.5px;font-weight:600}.help-model{background:#f6f2e9;border:1px solid #ebe5d9;border-radius:14px;justify-content:space-between;align-items:center;gap:20px;margin:18px 0;padding:14px 16px;display:flex}.help-model strong{color:#38342d;margin-bottom:4px;font-size:12.5px;font-weight:600;display:block}.help-model span{color:#7b7468;max-width:360px;font-size:11.5px;line-height:1.55;display:block}.model-chip{color:#6f695d;white-space:nowrap;background:#fffdf8;border:1px solid #e5dfd2;border-radius:999px;align-items:center;gap:7px;padding:6px 10px;font-size:10.5px;font-weight:600;display:flex}.model-chip .status-dot{width:6px;height:6px}.help-links{align-items:center;gap:16px;display:flex}.help-links a{color:#6f695d;border-bottom:1px solid #0000;font-size:12px;font-weight:500;text-decoration:none}.help-links a:hover{color:var(--accent);border-color:currentColor}.primary-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:9px;height:36px;margin-left:auto;padding:0 16px;font-size:12px;font-weight:600;box-shadow:0 8px 20px -8px #5b57d1b3}.primary-button:hover{background:#4c48c2}.confirm-modal{width:min(420px,100%);padding:26px 28px}.confirm-modal h2{color:var(--ink);margin:0 0 10px;font-family:Caveat,cursive;font-size:36px;font-weight:700;line-height:1}.confirm-modal p{color:#6f695e;margin:0 0 22px;font-size:13px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:10px;display:flex}.ghost-button{color:#5f5a50;cursor:pointer;background:#fffdf8;border:1px solid #e4ded2;border-radius:9px;height:36px;padding:0 15px;font-size:12px;font-weight:600}.ghost-button:hover{background:#f6f2e9}.danger-button{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:9px;height:36px;padding:0 15px;font-size:12px;font-weight:600;box-shadow:0 8px 18px -8px #c5534bcc}.danger-button:hover{background:#b2453e}@media (width<=760px){.topbar{inset:10px 10px auto}.brand{padding:6px 11px 6px 6px}.brand-mark{width:32px;height:32px}.brand-name{font-size:24px}.brand-tag{display:none}.icon-button{width:36px;height:36px}.export-button{height:36px;padding:0 12px;font-size:12px}.toolbar{flex-direction:row;padding:5px;top:auto;bottom:12px;left:50%;transform:translate(-50%)}.tool{width:38px;height:38px}.toolbar-sep{width:1px;height:22px;margin:auto 3px}.tool[data-tip]:after{display:none}.style-panel{width:calc(100vw - 24px);max-height:46vh;animation:none;top:auto;bottom:68px;left:50%;transform:translate(-50%)}.zoom-bar,.status-pill{display:none}.empty-hint{bottom:78px}.empty-title{font-size:33px}.empty-kinds{display:none}.toast{bottom:74px}.help-grid{grid-template-columns:1fr;gap:16px}.help-modal{padding:26px 22px 22px}.help-model{flex-direction:column;align-items:flex-start}.help-links{flex-wrap:wrap}.help-links .primary-button{width:100%;margin-left:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
