:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--hover-bg: rgba(255, 255, 255, .1)}[data-theme=light]{--hover-bg: rgba(0, 0, 0, .05)}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100%;font-family:Fira Mono,Consolas,Menlo,Monaco,Liberation Mono,monospace!important}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{width:100vw;height:100vh;height:100svh;margin:0;padding:0;text-align:center;overflow:hidden}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}:root{--bg: #1a1a1a;--bg-light: #222222;--bg-bright: #444444;--fg: #fff;--fg-dark: #dfdfdf;--border: #444444;--footer-bg: #1a1a1a;--cells: #deb202;--save: #22c55e;--clear: #ee3333;--zoom: #f59e0b;--info: #007bff;--menu: #cf00cf;--side: #7800cc}body{background:var(--bg);color:var(--fg);margin:0;padding:0;overflow:hidden}.App{height:100%;display:flex;flex-direction:column;background:var(--bg);color:var(--fg)}header{height:60px;max-height:60px;width:100vw;background:var(--bg);color:var(--fg);border-bottom:1px solid var(--border);box-sizing:border-box;flex-shrink:0}.main-content{flex:1;display:flex;flex-direction:row;position:relative;overflow:hidden;min-height:0}.content-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}footer{width:100%;background:var(--footer-bg);color:var(--fg);border-top:1px solid var(--border);box-sizing:border-box;transition:width .3s ease-in-out;flex-shrink:0;position:relative;z-index:10}footer.menu-open{width:calc(100% - 340px)}footer.imageimportdialog-open{width:calc(100% - 340px)}main{flex:1;width:100%;display:flex;align-items:flex-start;justify-content:flex-start;overflow:auto;background:var(--bg);box-sizing:border-box;transition:width .3s ease-in-out;min-height:0}main.menu-open{width:calc(100% - 340px)}main.imageimportdialog-open{width:calc(100% - 340px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}::-webkit-scrollbar-corner{background:var(--bg)}button{background:var(--border);color:var(--fg);border:none;border-radius:4px;padding:0 16px;font-size:16px;cursor:pointer;transition:background .2s}button:hover{background:var(--fg);color:var(--bg)}button:disabled{opacity:.5;cursor:not-allowed}.header-actions{display:flex}.toolbar-actions{display:none}.main-grid-area{display:flex;align-items:flex-start;justify-content:flex-start;background:var(--bg);min-height:0;transition:width .3s ease-in-out}.main-grid-area.menu-open,.main-grid-area.imageimportdialog-open{width:calc(100% - 340px)}.ascii-map-grid{display:inline-block;border:1px solid #444;background:var(--bg);-webkit-user-select:none;user-select:none;touch-action:none;position:relative}.ascii-map-grid-row{display:flex}.ascii-map-grid-cell{border:1px solid #373737;display:flex;align-items:center;justify-content:center;font-family:monospace;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .2s ease}.ascii-map-grid-cell.selected,.ascii-map-grid.no-borders .ascii-map-grid-cell.selected{border-color:#aaa!important;border-style:dashed}.ascii-map-grid-cell.in-selection{background:#5555554d}.selection-rectangle{position:absolute;border:2px solid #3b83f6a2;background:#11284c50;z-index:1;pointer-events:none}.selection-rectangle.eraser-mode{border:2px solid #ef4444a2;background:#4c1d1d50}.ascii-map-grid.selection-mode .ascii-map-grid-cell{cursor:crosshair}.ascii-map-grid.no-borders,.ascii-map-grid.no-borders .ascii-map-grid-cell{border-color:transparent!important}.cell-preview{animation:preview-pulse 1.5s ease-in-out infinite alternate}@keyframes preview-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:.9;transform:scale(1.05)}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}.tippy-box{background-color:var(--bg-bright);color:var(--fg);border-radius:6px;box-shadow:0 4px 12px #00000026;font-size:14px;line-height:1.4;padding:8px 12px;max-width:200px;word-wrap:break-word}.tippy-arrow{color:var(--bg-bright)}.icon-button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:4px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--fg);cursor:pointer;transition:all .2s ease;outline:none;position:relative}.icon-button:focus{outline:none}.icon-button:hover{background:var(--hover)}.icon-button:disabled{opacity:.5;cursor:not-allowed}.icon-button.save-button{color:var(--save);border-color:var(--save)}.icon-button.save-button:hover{background:var(--save);color:var(--fg)}.icon-button.import-button{color:var(--save);border-color:var(--save)}.icon-button.import-button:hover{background:var(--save);color:var(--fg)}.icon-button.clear-button{color:var(--clear);border-color:var(--clear)}.icon-button.clear-button:hover{background:var(--clear);color:var(--fg)}.icon-button.zoom-button{color:var(--zoom);border-color:var(--zoom)}.icon-button.zoom-button:hover{background:var(--zoom);color:var(--fg)}[data-theme=dark] .icon-button.zoom-button{color:#f59e0b;border-color:#f59e0b}[data-theme=dark] .icon-button.zoom-button:hover{background:#f59e0b;color:#fff}[data-theme=light] .icon-button.zoom-button{color:#fff;border-color:#1e293b;background:#334155}[data-theme=light] .icon-button.zoom-button:hover{background:#1e293b;color:#fff}.icon-button svg{width:20px;height:20px}.icon-button.info-button{color:var(--info);border-color:var(--info)}.icon-button.info-button:hover{background:var(--info);color:var(--fg)}.icon-button.menu-button{color:var(--menu);border-color:var(--menu)}.icon-button.menu-button:hover{background:var(--menu);color:var(--fg)}.app-header{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--border);position:relative;z-index:10}.app-header h1{margin:0;font-family:Doto,sans-serif;font-weight:700;font-size:2.1em;background:linear-gradient(to right,var(--clear),var(--zoom),#ffff00,var(--save),var(--info),var(--menu));-webkit-background-clip:text;background-clip:text;color:transparent;background-size:100% auto}@keyframes rainbow{0%{background-position:0% center}to{background-position:200% center}}.header-actions{display:flex;align-items:center;gap:16px}.desktop-only .icon-button{width:auto;padding:4px 12px;gap:8px}.button-label{font-size:.9em;font-weight:500;display:none}.desktop-only .button-label{display:inline}.zoom-controls{display:flex;align-items:center;border-left:1px solid var(--border-color);border-right:1px solid var(--border-color)}.zoom-controls .icon-button{color:#ffb74d;transition:color .2s ease}.zoom-controls .icon-button:hover:not(:disabled){color:var(--fg)}.zoom-controls .icon-button:disabled{color:var(--disabled-color)}.zoom-level{font-size:12px;min-width:40px;text-align:center;color:var(--fg)}.menu-button.active{background:var(--menu);color:var(--bg)}.border-button{color:var(--border);border:1px solid var(--cells);opacity:.5}.border-button:hover{background:var(--cells);color:var(--fg);opacity:.75}.border-button.active{background:var(--cells);color:var(--fg);opacity:1}.grid-dimensions{display:flex;align-items:center;gap:2px}.dimension-inputs{display:flex;align-items:center}.dimension-inputs .icon-button{width:28px;height:28px;padding:0;font-size:14px;font-weight:700;color:var(--cells);border:1px solid var(--border);border-radius:4px;background:var(--bg)}.dimension-inputs .icon-button:hover{background:var(--cells);color:var(--fg);border-color:var(--cells)}.dimension-inputs .icon-button:disabled{color:var(--disabled-color);border-color:var(--border);background:var(--bg);cursor:not-allowed}.grid-dimensions .dimension-separator:not(:has(+span)){color:var(--fg);font-size:14px;font-weight:500;opacity:.8;min-width:auto;padding:0 8px}.info-dialog{position:fixed;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:0 20px;box-shadow:0 4px 8px #0003;z-index:1000;display:flex;flex-direction:column;text-align:left;transform:none;border-color:#4477ca;height:100%;width:100%;max-width:90%;max-height:90%;top:5%;left:5%}.info-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0rem;border-bottom:2px dashed var(--info);font-family:Doto,sans-serif;font-weight:700}.info-dialog h2{margin:0;font-size:1.4rem}.info-dialog .menu-close{background:none;border:none;color:var(--fg);font-size:1.3rem;cursor:pointer;padding:0 .5rem;margin:.6rem 0}.info-dialog .menu-close:hover{background:var(--info);color:var(--fg)}.info-dialog-body{overflow-y:auto;flex-grow:1;margin:20px 10px;opacity:.9;font-family:system-ui,sans-serif}.info-dialog-body h3{margin-top:34px;color:var(--fg);font-size:1.1em;border-bottom:2px dashed var(--border);padding-bottom:5px;margin-bottom:6px;border-top:2px dashed var(--border);padding-top:5px;font-family:Doto,sans-serif;font-weight:700}.info-dialog-body h5{margin-top:15px}.info-dialog-body p,.info-dialog-body ul{color:var(--fg);font-size:.9em;margin-bottom:1rem}.info-dialog-body ul{margin-left:10px;opacity:.85}.feature-icon{flex-shrink:0;margin-top:2px;color:var(--primary-color);opacity:.9;display:inline-block;width:25px}.info-dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:999}.export-panel{position:fixed;top:60px;right:-342px;width:340px;height:calc(100% - 60px);background:var(--bg);border-left:1px solid var(--save);z-index:9999;transition:right .3s ease-in-out;display:flex;flex-direction:column}.export-panel.open{right:0}.export-panel-header{padding:.4rem 1rem;color:var(--fg);font-size:1em;font-weight:700;text-align:left;border-bottom:1px dashed var(--save);font-family:Doto,sans-serif;display:flex;justify-content:space-between;align-items:center}.export-panel-close{background:none;border:none;color:var(--fg);font-size:1.5rem;cursor:pointer;padding:.2rem .5rem;line-height:1}.export-panel-close:hover{background:var(--save);color:var(--fg)}.export-panel-content{padding:1rem;flex-grow:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.export-item{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:3px;cursor:pointer;transition:background-color .2s,border-color .2s;border:1px solid var(--border);background:none;text-align:left;margin-bottom:8px}.export-item:hover{background:var(--bg-light);border-color:var(--border)}.export-item-content{display:flex;flex-direction:column;gap:2px;flex:1}.export-label{font-weight:700;color:var(--save);font-size:.85rem}.export-description{font-size:.8rem;color:var(--fg);opacity:.8;line-height:1.3}.export-item:last-child{margin-bottom:0}.button-description{display:none}.icon-button.save-button.dropdown-open{background:var(--save);color:var(--fg)}.image-import-panel{position:fixed;top:60px;right:-340px;width:340px;height:calc(100% - 60px);background:var(--bg);border-left:1px solid var(--save);z-index:900;transition:right .3s ease-in-out;display:flex;flex-direction:column;box-shadow:-2px 0 5px #0003;font-size:.85rem}.image-import-panel.open{right:0}.icon-button.import-button.open{background:var(--save);color:var(--fg)}.image-import-navigation{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;border-bottom:1px dashed var(--save);flex-shrink:0}.image-import-navigation h3{margin:0;color:var(--fg);font-family:Doto,sans-serif;font-weight:700;font-size:1rem;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:calc(100% - 40px)}.image-import-navigation .close-button{background:none;border:none;color:var(--fg);font-size:1.5rem;cursor:pointer;padding:.2rem .5rem;line-height:1;font-family:Doto,sans-serif;font-weight:700}.image-import-navigation .close-button:hover{background:var(--save);color:var(--fg)}.line{border-bottom:1px dashed var(--border);margin-bottom:10px}.image-info{padding:0 0 .75rem 0rem;flex-shrink:0;text-align:left}.image-info p{margin:0 0 .25rem;color:var(--fg)}.image-info p:last-child{margin-bottom:0}.image-import-content{padding:.75rem;flex-grow:1;overflow-y:auto;text-align:left}.option-group{margin-bottom:1rem}.option-group:last-child{margin-bottom:0}.option-group label{display:block;margin-bottom:.25rem;color:var(--fg);font-weight:500;font-size:.85rem}.color-mode-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem}.color-mode-header label{margin-bottom:0;flex-shrink:0;white-space:nowrap}.color-mode-header select{flex:1;min-width:0}.range-header{display:flex;align-items:center;gap:.5rem}.range-header label{margin-bottom:0;flex-shrink:0;white-space:nowrap;font-size:.85rem}.range-header input[type=range]{flex:1;margin:0;min-width:0}.option-group select,.option-group input[type=number]{width:100%;padding:.4rem .6rem;background:var(--bg-light);border:1px solid var(--border);border-radius:4px;color:var(--fg);font-size:.8rem;font-family:inherit}.option-group select:focus,.option-group input[type=number]:focus{outline:none;border-color:var(--info)}.option-description{margin-top:.2rem;text-align:left}.option-description small{color:#888;font-size:.7rem}.resolution-inputs{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem}.resolution-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem}.resolution-header label{margin-bottom:0;flex-shrink:0;white-space:nowrap;font-size:.85rem}.resolution-inputs input{flex:0 0 60px;width:60px;min-width:60px;max-width:60px}.resolution-inputs span{color:var(--fg);font-weight:700;font-size:.85rem;flex-shrink:0}.option-group input[type=range]{width:100%;height:6px;background:var(--bg-light);border-radius:3px;outline:none;-webkit-appearance:none;margin-top:.2rem}.option-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:var(--info);border-radius:50%;cursor:pointer}.option-group input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--info);border-radius:50%;cursor:pointer;border:none}.option-group input[type=checkbox]{margin-right:8px}.image-import-footer{display:flex;gap:.5rem;padding:.75rem;border-top:1px dashed var(--save);background:var(--bg);flex-shrink:0}.footer-spacer{flex-grow:1}.cancel-button{background:var(--bg-light);color:var(--save);border:1px solid var(--save);padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.85rem;font-family:inherit;transition:all .2s ease}.cancel-button:hover{background:var(--save);color:var(--fg);border:1px solid var(--save)}.auto-calculate-button{background:var(--border);color:#fff;border:none;padding:.2rem .5rem;border-radius:4px;cursor:pointer;font-size:.4rem;font-weight:500;font-family:inherit;transition:all .2s ease;width:auto;height:auto;min-height:0;display:flex;align-items:center;justify-content:center;margin-bottom:5px}.auto-calculate-button:hover:not(:disabled){background:var(--info);color:var(--fg)}.auto-calculate-button:disabled{background:var(--border);color:#666;cursor:not-allowed}.adjustments-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.adjustments-header label{margin-bottom:0;flex-shrink:0;white-space:nowrap;font-size:.85rem;font-weight:500;color:var(--save)}.reset-ranges-button{background:var(--border);color:var(--fg);border:none;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;font-family:inherit;transition:all .2s ease}.reset-ranges-button:hover{background:var(--info);color:var(--fg)}.character-categories{display:flex;flex-direction:column;gap:8px;width:100%;height:100%;overflow-y:auto;padding-right:4px}.character-category{display:flex;flex-direction:column;gap:4px}.category-name{font-size:12px;color:var(--fg);opacity:.6;margin-left:2px}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(28px,1fr));gap:4px;padding:2px}.character-swatch{width:28px;height:28px;font-size:16px;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.character-swatch:hover{transform:scale(1.1);box-shadow:0 2px 4px #0003}.character-swatch.selected{background:#444;transform:scale(1.1);box-shadow:0 2px 4px #0003}.character-input{width:28px;height:24px;font-family:monospace;font-size:14px;text-align:center;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:3px;padding:0}.character-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.2)}.color-palette{display:flex;flex-direction:column;gap:8px;height:100%;overflow:hidden}.color-palette-header{display:flex;justify-content:flex-end;margin-bottom:8px}.color-palette-header h3{margin:0;font-size:16px;color:var(--fg)}.color-categories{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1;padding-top:9px}.color-category{display:flex;flex-direction:column}.color-grid{display:flex;flex-wrap:nowrap;gap:4px;padding:0 4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.color-swatch{width:24px;height:24px;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:transform .1s ease;padding:0}.color-swatch:hover{transform:scale(1.1);z-index:1}.color-swatch.selected{border:2px solid black;z-index:1;box-shadow:0 0 5px 1px #fff}/*! tailwindcss v4.1.10 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.grid\!{display:grid!important}.h-\[460px\]{height:460px}.min-h-\[150px\]{min-height:150px}.w-full{width:100%}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.gap-4{gap:calc(var(--spacing)*4)}.border{border-style:var(--tw-border-style);border-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}@media (min-width:48rem){.md\:col-start-2{grid-column-start:2}.md\:row-span-2{grid-row:span 2/span 2}.md\:min-h-0{min-height:calc(var(--spacing)*0)}.md\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.md\:grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}}@media (min-width:64rem){.lg\:col-auto{grid-column:auto}.lg\:row-span-1{grid-row:span 1/span 1}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-rows-1{grid-template-rows:repeat(1,minmax(0,1fr))}}}.footer{border-top:1px solid var(--border);background:var(--footer-bg);z-index:10;flex-direction:column;justify-content:center;align-items:flex-start;height:200px;padding:12px 0;transition:height .3s;display:flex;position:relative;overflow:hidden}.footer:hover{height:350px}.footer-content{flex-direction:column;width:100%;height:100%;padding:0 6px;display:flex;overflow:hidden}.footer-mobile-view{height:100%;display:block}.footer-desktop-view{display:none}.footer-mobile{flex-direction:column;height:100%;min-height:0;display:flex}.selected-header{background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;padding:6px;display:flex}.mobile-tabs{border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;display:flex;overflow:hidden}.mobile-tab{background:var(--bg);min-height:38px;color:var(--fg-dark);text-align:center;letter-spacing:.5px;border:none;border-bottom:1px solid #0000;border-radius:0;flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.mobile-tab.active{border-bottom-color:var(--accent);background:var(--border);color:var(--fg);font-weight:600}.mobile-tab-content{background:var(--bg);border-radius:0 0 6px 6px;flex:1;min-height:0;padding:8px;overflow-y:auto}.mobile-section{flex-direction:column;gap:8px;height:100%;min-height:0;display:flex}.footer-sections{flex:1;gap:12px;height:100%;min-height:0}.footer-section{flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.section-header{align-items:center;gap:8px;display:flex}.section-label{color:var(--fg);opacity:.8;text-align:left;margin-left:3px;font-size:14px}.color-section{flex-direction:column;gap:8px;display:flex}.color-section-label{color:var(--fg);opacity:.8;font-size:14px}.character-section{flex:1}.color-mode-section{flex-direction:column;justify-content:center;display:flex}.color-mode-buttons{flex-direction:column;gap:8px;display:flex}.color-mode-btn{border:2px solid var(--border);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;transition:all .2s;display:flex}.color-mode-btn .color-swatch{border:1px solid var(--border);border-radius:3px;width:20px;height:20px}.color-mode-btn.active{transform:translateY(-1px);box-shadow:0 2px 4px #0003}.reset-link:hover{color:#fff!important;background:#dc3545!important}.contact-icon{flex-shrink:0;width:1.2rem;height:1.2rem}@media (min-width:768px){.footer-mobile-view{display:none}.footer-desktop-view{height:100%;display:block}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.shortcuts-section h3{padding:0 0 8px;margin-bottom:12px;font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px dashed;text-align:left}.shortcut-list{display:flex;flex-direction:column;gap:.5rem}.shortcut-item{display:flex;justify-content:flex-start;align-items:center;padding:.2rem 0}.shortcut-item kbd{border:1px solid var(--border);border-radius:3px;padding:.2rem .4rem;font-size:.85rem;font-family:monospace;color:var(--fg);min-width:40px;text-align:center;background:var(--bg-light);margin-right:.5rem}.shortcut-item span{font-size:.8rem;color:var(--fg);text-align:left;opacity:.95;margin-left:.5rem}.help-container{display:flex;flex-direction:column;height:100%}.help-tabs{display:flex;border-bottom:1px solid var(--menu);margin-bottom:1rem;flex-shrink:0}.help-tab{flex:1;padding:.5rem .8rem;background:none;border:none;color:var(--fg);font-size:.8rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;outline:none}.help-tab:hover{background:#e600e61a}.help-tab.active{border-bottom-color:var(--menu);color:var(--menu);font-weight:600}.help-content{flex:1;overflow-y:auto}.help-section{margin-bottom:1.5rem}.help-section h3{margin:0 0 1rem;font-size:.9rem;font-weight:600;color:var(--menu);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px dashed var(--menu);padding-bottom:.5rem}.tool-help,.mode-help{display:flex;flex-direction:column;gap:1rem}.tool-item,.mode-item{border:1px dashed var(--menu);border-radius:4px;padding:1rem;background:#e600e60d}.tool-item h4,.mode-item h4{margin:0 0 .5rem;font-size:.85rem;font-weight:600;color:var(--menu)}.tool-item p,.mode-item p{margin:0 0 .5rem;font-size:.8rem;color:var(--fg);line-height:1.4}.tool-usage{font-size:.75rem;color:var(--fg);opacity:.8;padding:.3rem .5rem;background:#e600e61a;border-radius:3px;border-left:3px solid var(--menu)}.general-help{display:flex;flex-direction:column;gap:1.5rem}.help-item{border:1px dashed var(--menu);border-radius:4px;padding:1rem;background:#e600e60d}.help-item h4{margin:0 0 .8rem;font-size:.85rem;font-weight:600;color:var(--menu)}.help-item ol,.help-item ul{margin:0;padding-left:1.2rem;font-size:.8rem;color:var(--fg);line-height:1.5}.help-item li{margin-bottom:.3rem}.help-item li:last-child{margin-bottom:0}.help-item strong{color:var(--menu);font-weight:600}.selection-tool{text-align:left}.selection-tool-section{margin-bottom:14px}.selection-tool-section h4{padding:0 0 5px;margin-bottom:5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px dashed}.instructions{padding:8px 0}.instruction-item{color:#ccc;margin-bottom:6px;line-height:1.3}.instruction-item:last-child{margin-bottom:0}.instruction-item strong{color:var(--save);width:100%;display:block}.reset-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.reset-dialog{background:var(--bg);border:1px solid var(--border);border-radius:8px;width:90%;max-width:400px;box-shadow:0 4px 20px #0000004d;animation:dialogSlideIn .2s ease-out}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.reset-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}.reset-dialog-header h3{margin:0;color:var(--fg);font-family:Doto,sans-serif;font-weight:700;font-size:1.1rem}.reset-dialog-close{background:none;border:none;color:var(--fg);font-size:1.2rem;cursor:pointer;padding:.2rem;border-radius:4px;transition:all .2s ease;width:28px;height:28px;display:flex;align-items:center;justify-content:center}.reset-dialog-close:hover{background:var(--menu);color:var(--fg)}.reset-dialog-content{padding:1.5rem;color:var(--fg);font-size:.9rem;line-height:1.5}.reset-dialog-content p{margin:0 0 1rem}.reset-dialog-content ul{margin:.5rem 0 1rem 1.5rem;padding:0}.reset-dialog-content li{margin:.3rem 0;color:var(--fg)}.reset-warning{color:#ff6b6b!important;font-weight:600}.reset-dialog-actions{display:flex;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--border);justify-content:flex-end}.reset-dialog-button{padding:.6rem 1.2rem;border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:.9rem;cursor:pointer;transition:all .2s ease;min-width:80px}.reset-dialog-button.cancel{background:var(--bg);color:var(--fg)}.reset-dialog-button.cancel:hover{background:var(--menu);border-color:var(--menu)}.reset-dialog-button.confirm{background:#dc3545;color:#fff;border-color:#dc3545}.reset-dialog-button.confirm:hover{background:#c82333;border-color:#bd2130}.menu-panel{position:fixed;top:60px;right:-340px;width:340px;height:calc(100% - 60px);background:var(--bg);border-left:1px solid var(--menu);z-index:900;transition:right .3s ease-in-out;display:flex;flex-direction:column;box-shadow:-2px 0 5px #0003;font-size:.85rem}.menu-panel.open{right:0}.menu-navigation{display:flex;flex-shrink:0}.nav-button{background:none;border-bottom:1px dashed var(--menu);border-right:1px dashed var(--menu);color:#ccc;padding:6px 12px;font-size:12px;cursor:pointer;border-radius:0;font-family:inherit;transition:all .2s ease;flex:1;outline:none!important;border-left:none;font-size:.85rem}.nav-button:last-child{border-right:none}.nav-button:hover{background:var(--menu);color:var(--fg);border-color:var(--menu)}.nav-button.active{color:var(--fg);font-weight:700;background:#cf00cf3c}.close-button{flex:0 0 auto!important;width:40px;font-weight:700;font-size:14px}.menu-content{padding:1rem;flex-grow:1;overflow-y:auto;font-family:system-ui,sans-serif}.menu-content::-webkit-scrollbar{width:8px}.menu-content::-webkit-scrollbar-track{background:var(--bg);border-radius:3px}.menu-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.menu-placeholder{text-align:center;color:var(--fg);font-style:italic;padding:2rem;opacity:.7}.menu-footer{padding:.5rem;border-top:1px dashed var(--menu);flex-shrink:0;display:flex;align-items:center;justify-content:flex-start;position:relative}.menu-footer h3{margin:0;color:var(--fg);font-family:Doto,sans-serif;font-weight:700;font-size:1rem;text-align:left;flex-shrink:0}.contact-links{display:flex;gap:.5rem;align-items:center;margin-left:1rem}.reset-link{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:#dc3545!important}.contact-link{display:flex;align-items:center;gap:.5rem;padding:.2rem .5rem;text-decoration:none;color:var(--fg);border-radius:4px;transition:all .2s ease;font-size:.9rem;background:none;border:none;cursor:pointer;font-family:inherit}.contact-link:hover{background:var(--menu);color:var(--fg)}.reset-link:hover{background:#dc3545!important;color:#fff!important}.contact-icon{width:1.2rem;height:1.2rem;flex-shrink:0}.toast{background:#fff;border:1px solid #e1e5e9;border-radius:8px;box-shadow:0 4px 12px #00000026;margin-bottom:8px;max-width:400px;min-width:300px;opacity:0;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:10000;background-image:linear-gradient(var(--bg-light ),var(--bg-light)),linear-gradient(to right,#e336,#f59e0b66,#ff06,#22c55e66,#007bff66,#cf00cf66);border:1px solid transparent;background-origin:border-box;background-clip:padding-box,border-box;box-shadow:0 0 5px 2px #222}.toast.show{opacity:1;transform:translateY(0)}.toast-content{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 16px 12px;text-align:left;font-family:system-ui,sans-serif}.toast-message{color:var(--fg);font-size:14px;line-height:1.5;margin-right:8px;flex:1}.toast-close-btn{background:none;border:none;color:var(--fg-dark);cursor:pointer;font-size:18px;font-weight:700;line-height:1;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease;flex-shrink:0}.toast-close-btn:hover{background-color:#f7fafc;color:#4a5568}.toast-close-btn:active{background-color:#edf2f7}.toast-footer{border-top:1px solid var(--border);padding:8px 16px 12px}.toast-dont-show-again{align-items:center;color:var(--fg-dark);cursor:pointer;display:flex;font-size:12px;gap:6px;-webkit-user-select:none;user-select:none}.toast-dont-show-again input[type=checkbox]{accent-color:var(--zoom);cursor:pointer;height:14px;margin:0;width:14px}.toast-dont-show-again span{line-height:1.4}.toast-container{position:fixed;bottom:215px;right:20px;display:flex;flex-direction:column;align-items:flex-end;gap:0;pointer-events:none;z-index:10000}.toast-wrapper{pointer-events:auto;transition:transform .3s cubic-bezier(.4,0,.2,1);margin-top:10px}.sidebar{width:48px;height:100%;background:var(--bg-light);border-right:1px solid var(--border);flex-shrink:0;position:relative;z-index:15}.sidebar-content{height:100%;display:flex;flex-direction:column;align-items:center;padding:8px 0;box-sizing:border-box;overflow-y:auto}.sidebar-section{width:100%}.sidebar-section-title{font-size:10px;color:var(--fg);opacity:.7;text-align:center;margin-bottom:4px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.sidebar-buttons{display:flex;flex-direction:column;align-items:center;gap:4px}.sidebar-radio-btn{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center}.sidebar-radio-btn input[type=radio]{position:absolute;opacity:0;pointer-events:none}.sidebar-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--border);border-radius:4px;transition:all .2s ease;position:relative;cursor:pointer}.sidebar-icon:hover{background:var(--fg);color:var(--side)}.sidebar-radio-btn input[type=radio]:checked+.sidebar-icon{background:var(--side);color:var(--fg)}.sidebar-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--border);border:none;border-radius:4px;color:var(--fg);cursor:pointer;transition:all .2s ease;padding:0;position:relative}.sidebar-btn:hover{background:var(--fg);color:var(--side)}.sidebar-btn:disabled{opacity:.4;cursor:not-allowed;background:var(--border);color:var(--fg)}.sidebar-btn:disabled:hover{background:var(--border);color:var(--fg)}.sidebar-separator{width:32px;height:1px;background:var(--border);margin:8px 0;opacity:.5}.sidebar-icon svg,.sidebar-btn svg{width:16px;height:16px}.sidebar-placeholder{display:none}.sidebar-btn.paste-mode-active{background:var(--side);color:var(--bg);border:2px solid var(--fg);box-shadow:0 0 0 2px var(--side),0 2px 8px #00000026}.loader-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loader-content{display:flex;flex-direction:column;align-items:center;color:#fff;font-family:Courier New,Courier,monospace}.loader-spinner{border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:15px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loader-text{font-size:1.2rem;font-weight:700;text-shadow:1px 1px 2px rgba(0,0,0,.7)}@media (max-width: 600px){header h1{font-size:18px}.App{font-size:14px}}@media (max-width: 1150px) and (min-width: 900px){.app-header h1{font-size:1.4rem!important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.app-header{padding:0 10px!important}}@media (max-width: 560px){.zoom-controls,.border-button{display:none!important}}@media (max-width: 1024px){.footer,.footer:hover{height:460px!important}.footer-sections{flex-direction:column;gap:8px;opacity:1}.color-section{gap:4px}.color-mode-buttons{flex-direction:row;justify-content:center}.toast-container{bottom:10px!important}}@media (max-width: 900px){.header-actions{display:none!important}.toolbar-actions{display:flex;width:100vw;justify-content:center;align-items:center;gap:12px;padding:8px 0;background:var(--footer-bg);border-bottom:1px solid var(--border);z-index:20}.app-header{padding-bottom:0!important;justify-content:center!important;align-items:center!important;height:40px}.app-header h1{font-size:1.6em}.toolbar-actions button,.toolbar-actions label{font-size:18px;height:38px;min-width:46px;padding:0 10px}.menu-panel{width:100vw;right:-100vw;border-top:1px solid var(--menu);border-bottom:1px solid var(--menu);border-left:none;top:95px;height:calc(100% - 95px)}.menu-panel.open{right:0}.image-import-panel,.export-panel{top:95px;height:calc(100% - 95px)}}@media (max-width: 767px){.desktop-only{display:none}.color-grid{gap:3px}.toast-container{bottom:16px;left:16px;right:16px;align-items:stretch}.toast-wrapper{transform:none!important}.toast{max-width:calc(100vw - 32px);min-width:auto;width:calc(100vw - 32px)}.toast-message{font-size:15px}.toast-dont-show-again{font-size:13px}.tippy-box{font-size:13px;padding:6px 10px;max-width:180px}.info-dialog{max-width:96%;max-height:96%;top:2%;left:2%}.image-import-panel{width:100vw;right:-100vw;border-top:1px solid var(--save);border-bottom:1px solid var(--save);border-left:none;top:95px;height:calc(100% - 95px)}.image-import-panel.open{right:0}.export-panel{width:100%;right:-100%;border-top:1px solid var(--save);border-bottom:1px solid var(--save);border-left:none;top:95px;height:calc(100% - 95px)}.export-panel.open{right:0}.footer{padding:2px 0 0}.footer,.footer:hover{height:300px!important}.footer-content{padding:0}}@media (max-width: 480px){.reset-dialog{width:95%;margin:1rem}.reset-dialog-actions{flex-direction:column}.reset-dialog-button{width:100%}}@media screen and (max-height: 350px) and (orientation: landscape){.App{display:none}.App:after{content:"Unsupported screen size";position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--bg);padding:2rem;border:1px solid var(--border);border-radius:8px;z-index:1000}}
