@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2)format("woff2-variations");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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/ascii-generator/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");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{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07070a;--bg2:#0d0d12;--panel:#101016;--ink:#f4f4f7;--ink2:#c4c4ce;--mute:#80808c;--line:#ffffff14;--line2:#ffffff24;--font:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono Variable", ui-monospace, "Cascadia Mono", Menlo, monospace;--radius:0}*{box-sizing:border-box}html,body{height:100%}body{background:var(--bg);color:var(--ink);font:400 13px/1.45 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input{font:inherit;color:inherit}[hidden]{display:none!important}.app{grid-template-rows:52px minmax(0,1fr);grid-template-columns:minmax(0,1fr) 344px;height:100dvh;display:grid}.top{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5;background:#0d0d12b3;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:9px;font-size:14px;font-weight:500;display:flex}.brand img{border-radius:0}.brand-sep{color:var(--mute);font-weight:400}.brand-tool{color:var(--ink)}.tag{color:var(--ink2);background:#ffffff24;border-radius:0;margin-left:4px;padding:2px 8px;font-size:11px;font-weight:500}.top-actions{align-items:center;gap:8px;display:flex}.btn{border:1px solid var(--line2);background:var(--bg2);height:32px;color:var(--ink);cursor:pointer;white-space:nowrap;border-radius:0;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:12.5px;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){background:#17171f;border-color:#ffffff38}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:var(--ink);color:#0b0820;border-color:#0000}.btn.primary:hover:not(:disabled){background:#fff}.btn.sm{border-radius:0;height:28px;padding:0 11px;font-size:12px}.btn.on{background:var(--ink);color:#0e0e13;border-color:#0000}.btn:focus-visible,.icon-btn:focus-visible,.seg button:focus-visible,.style:focus-visible,.sw:focus-visible,.switch:focus-visible,.chip-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.icon-btn{cursor:pointer;background:#ffffff14;border:0;border-radius:0;place-items:center;width:28px;height:28px;display:grid}.icon-btn:hover{background:#ffffff24}.stage{background:var(--bg);place-items:center;min-height:0;padding:24px;display:grid;position:relative;overflow:hidden}.dots{pointer-events:none;background-image:radial-gradient(#ffffff13 1px,#0000 1.3px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 30%,#0000 88%);mask-image:radial-gradient(#000 30%,#0000 88%)}.canvas-wrap{place-items:center;max-width:100%;max-height:100%;display:grid;position:relative}.canvas-wrap canvas{border-radius:0;grid-area:1/1;display:block;box-shadow:0 0 0 1px #ffffff12,0 40px 120px -30px #000c,0 0 160px -40px #ffffff40}#compare{width:100%;height:100%}.chip{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100% - 32px);color:var(--mute);font:500 11.5px var(--mono);background:#101016b8;border-radius:0;padding:5px 11px;position:absolute;top:14px;left:16px;overflow:hidden}.dock{border:1px solid var(--line2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#101016d1;border-radius:0;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.scrub{width:min(280px,34vw)}.time{font:500 11.5px var(--mono);color:var(--mute);min-width:34px}.notice{text-align:center;color:var(--ink2);background:var(--bg);z-index:3;place-items:center;padding:32px;display:grid;position:absolute;inset:0}.panel{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.scroll{scrollbar-width:thin;scrollbar-color:#ffffff24 transparent;flex:1;min-height:0;overflow-y:auto}.block{border-bottom:1px solid var(--line);padding:14px 16px}.label{color:var(--mute);letter-spacing:.02em;margin:0 0 8px;font-size:11.5px;font-weight:500}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:1px solid var(--line);background:var(--bg2);height:26px;color:var(--ink2);cursor:pointer;border-radius:0;padding:0 11px;font-size:12px;font-weight:500;transition:background .15s,color .15s,border-color .15s}.chip-btn:hover{color:var(--ink);border-color:var(--line2);background:#181821}.sec{border-bottom:1px solid var(--line)}.sec>summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:13px 16px;font-size:12.5px;font-weight:500;list-style:none;display:flex}.sec>summary::-webkit-details-marker{display:none}.sec>summary:after{content:"";border-right:1.5px solid var(--mute);border-bottom:1.5px solid var(--mute);width:7px;height:7px;transition:transform .18s;transform:rotate(45deg)translateY(-2px)}.sec[open]>summary:after{transform:rotate(-135deg)translate(-2px)}.sec-body{gap:14px;padding:2px 16px 16px;display:grid}.field-head{color:var(--ink2);justify-content:space-between;align-items:baseline;margin-bottom:5px;font-size:12px;display:flex}.val{font:500 11px var(--mono);color:var(--mute)}.hint{color:var(--mute);margin:0;font-size:11.5px;line-height:1.5}.row{color:var(--ink2);justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}input[type=range]{appearance:none;cursor:pointer;--p:50%;background:0 0;width:100%;height:18px;margin:0;display:block}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--ink) var(--p), #ffffff21 var(--p));border-radius:0;height:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border-radius:0;width:14px;height:14px;margin-top:-5.5px;transition:box-shadow .15s;box-shadow:0 1px 3px #00000080}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 5px #ffffff47,0 1px 3px #00000080}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px #ffffff47,0 1px 3px #00000080}input[type=range]::-moz-range-track{background:#ffffff21;border-radius:0;height:3px}input[type=range]::-moz-range-progress{background:var(--ink);border-radius:0;height:3px}input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:0;width:14px;height:14px}input[type=range]:focus{outline:none}.seg{background:#ffffff0d;border-radius:0;gap:2px;padding:3px;display:flex}.seg button{min-width:0;color:var(--mute);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:0;flex:1;padding:6px 4px;font-size:12px;font-weight:500;transition:background .15s,color .15s}.seg button:hover{color:var(--ink)}.styles{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.style{border:1px solid var(--line);background:var(--bg2);color:var(--ink2);cursor:pointer;border-radius:0;justify-items:center;gap:3px;padding:9px 2px 7px;transition:border-color .15s,background .15s;display:grid}.style:hover{border-color:var(--line2)}.style .g{height:17px;color:var(--ink2);font:500 13px/17px var(--mono);letter-spacing:.03em;white-space:nowrap;overflow:hidden}.style .l{font-size:11px}.style.on{border-color:var(--ink);color:var(--ink);background:#ffffff21}.swatches{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.sw{border:1px solid var(--line);color:#fff;text-shadow:0 1px 2px #000000a6;cursor:pointer;border-radius:0;align-items:flex-end;height:36px;padding:0 7px 4px;font-size:10.5px;font-weight:500;display:flex}.switch{cursor:pointer;background:#ffffff26;border:0;border-radius:0;flex:none;width:32px;height:19px;transition:background .18s;position:relative}.switch:after{content:"";background:#fff;border-radius:0;width:15px;height:15px;transition:transform .18s;position:absolute;top:2px;left:2px}.switch[aria-checked=true]{background:var(--ink)}.switch[aria-checked=true]:after{transform:translate(13px)}.color{align-items:center;gap:8px;display:flex}.color input[type=color]{border:1px solid var(--line2);cursor:pointer;background:0 0;border-radius:0;width:30px;height:26px;padding:0}.color input[type=color]::-webkit-color-swatch-wrapper{padding:2px}.color input[type=color]::-webkit-color-swatch{border:0;border-radius:0}.text{border:1px solid var(--line2);background:var(--bg2);width:100%;height:30px;font:500 12px var(--mono);border-radius:0;padding:0 10px}.text:focus{outline:2px solid var(--ink);outline-offset:1px}.export{border-top:1px solid var(--line);background:var(--panel);gap:11px;padding:13px 16px 15px;display:grid}.export-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.export-grid .wide{grid-column:span 3}.size{font:500 11px var(--mono);color:var(--mute)}.progress{gap:8px;display:grid}.bar{background:#ffffff1a;border-radius:0;height:4px;overflow:hidden}.bar>i{background:var(--ink);border-radius:0;width:0;height:100%;transition:width .12s linear;display:block}.drop{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#07070ac7;place-items:center;display:grid;position:fixed;inset:0}.drop>div{border:1.5px dashed var(--ink);color:var(--ink2);border-radius:0;padding:44px 68px;font-size:18px;font-weight:500}.toasts{z-index:50;pointer-events:none;gap:8px;display:grid;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line2);background:#1a1a22;border-radius:0;max-width:min(520px,100vw - 32px);padding:10px 15px;font-size:12.5px;animation:.18s ease-out pop;box-shadow:0 12px 40px -8px #000000b3}.toast.err{border-color:#ff787866}@keyframes pop{0%{opacity:0;transform:translateY(6px)}}@media (max-width:860px){.app{height:auto;min-height:100dvh;display:block}.top{background:#0d0d12f5;height:52px;padding:0 12px;position:sticky;top:0}.stage{z-index:4;border-bottom:1px solid var(--line);height:42dvh;padding:14px;position:sticky;top:52px}.panel{border-left:0}.scroll{overflow:visible}.brand{gap:7px;font-size:13px}.brand-sep,.tag{display:none}.top-actions{gap:6px}.btn{padding:0 9px}.top-actions .btn:not(.primary) span{display:none}.dock{bottom:10px}}@media (max-width:560px){.btn.primary{padding:0 10px}.btn.primary span{display:none}}.canvas-wrap canvas{transition:opacity .25s}.stage:not(.ready) #out{opacity:0}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.label,.sec>summary,.tag,.size{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:500}.sec>summary{padding:14px 16px}.tag{border:1px solid var(--line2);color:var(--ink2);background:0 0;margin-left:6px;padding:2px 6px}.btn:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:#0e0e13}.btn.primary:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:0 0}.chip-btn:hover{background:var(--ink);border-color:var(--ink);color:#0e0e13}.seg{border:1px solid var(--line2);background:0 0;gap:0;padding:0}.seg button:last-child{border-right:0}.seg button.on{background:var(--ink);color:#0e0e13}.style{border-color:var(--line2);background:0 0}.style.on{border-color:var(--ink);background:#ffffff12}.sw{border-color:var(--line2)}input[type=range]::-webkit-slider-runnable-track{height:2px}input[type=range]::-webkit-slider-thumb{background:var(--ink);width:8px;height:16px;box-shadow:none;margin-top:-7px}input[type=range]:hover::-webkit-slider-thumb{box-shadow:0 0 0 3px #ffffff38}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #ffffff38}input[type=range]::-moz-range-track{height:2px}input[type=range]::-moz-range-progress{height:2px}input[type=range]::-moz-range-thumb{background:var(--ink);width:8px;height:16px}.switch{border:1px solid var(--line2);background:0 0;width:32px;height:18px}.switch:after{background:var(--mute);width:12px;height:12px;top:2px;left:2px}.switch[aria-checked=true]{background:var(--ink);border-color:var(--ink)}.switch[aria-checked=true]:after{background:#0e0e13;transform:translate(14px)}.canvas-wrap canvas{box-shadow:0 0 0 1px #ffffff29,0 30px 80px -30px #000000e6}.chip,.dock{border-color:var(--line2);background:#0a0a0ee6}.drop>div{border:1px dashed var(--ink);color:var(--ink)}.bar{height:2px}.export-btn{width:100%;height:42px;font-size:13px}.toasts{bottom:72px;left:20px;transform:none}.export-row{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;display:grid}.export-cell{align-content:start;gap:8px;display:grid}button,.btn{margin:4px}.chips,.styles,.swatches,.export-row,.top-actions{gap:0}.export-btn{width:auto}.seg button{border-right:0;padding:7px 2px}.chip-btn.on,.style.on{background:var(--ink);border-color:var(--ink);color:#0e0e13}.style.on .g{color:#0e0e13}.sw.on{outline:2px solid var(--ink);outline-offset:2px}.export-choices{grid-template-columns:repeat(4,1fr);display:grid}.brand img{mix-blend-mode:screen}
