@tailwind base;@tailwind components;@tailwind utilities;@layer base{:root{--bg-primary: 18 18 18;--bg-secondary: 30 30 30;--bg-tertiary: 37 37 37;--text-primary: 255 255 255;--text-secondary: 170 170 170;--text-tertiary: 102 102 102;--border-color: 51 51 51;--accent-color: 80 250 123;--accent-alt: 139 233 253;--error-color: 255 85 85;--success-color: 80 250 123}body{@apply bg-[#121212] text-white font-mono;}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{@apply bg-[#1e1e1e];}::-webkit-scrollbar-thumb{@apply bg-[#333];}::-webkit-scrollbar-thumb:hover{@apply bg-[#444];}@font-face{font-family:C64;src:url(/fonts/C64.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}}.ascii-monospace{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;white-space:pre;overflow:hidden;letter-spacing:0;line-height:1;box-sizing:border-box}.font-default{font-family:Consolas,Monaco,Liberation Mono,monospace;font-variant-numeric:tabular-nums;letter-spacing:0;font-feature-settings:"tnum";line-height:.85;overflow:hidden;font-weight:700}.ascii-monospace span{display:inline-block;text-align:center;padding:0;margin:0;letter-spacing:0}.font-default span{width:.95em;min-width:.95em;display:inline-block;line-height:.85;max-height:1em}.font-c64 span{width:1.1ch;min-width:1.1ch;max-width:1.1ch;height:1ch;display:inline-block;text-align:center;vertical-align:baseline}.font-c64 .binary-characters{width:1.1ch;min-width:1.1ch;max-width:1.1ch;display:inline-block;text-align:center;height:1ch}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.binary-characters{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;box-sizing:border-box;overflow:hidden;position:relative;vertical-align:baseline}.font-default .character,.font-default .binary-characters{width:.95em;min-width:.95em;max-width:.95em;height:1em;line-height:.85;font-weight:700}.font-c64 .character,.font-c64 .binary-characters{width:1.1ch;min-width:1.1ch;max-width:1.1ch;height:1ch;line-height:1}.app-header{padding:.5rem;background:hsl(var(--card));border-bottom:2px solid hsl(var(--border));text-transform:uppercase;display:flex;justify-content:center;align-items:center}.app-title{font-size:1.5rem;font-weight:700;color:#fff;text-align:center;letter-spacing:.25em;font-family:Courier New,monospace}#ascii-art{@apply font-mono text-sm leading-none whitespace-pre overflow-auto m-0 p-2;letter-spacing:0;background:#000;border:1px solid hsl(var(--border));border-radius:var(--radius);color:#fff;box-shadow:0 0 20px #ffffff1a}.terminal{background:#000;border:1px solid #444;border-radius:var(--radius);box-shadow:0 0 10px #ffffff0d;padding:.5rem;position:relative}.terminal:before{content:"";position:absolute;top:0;left:0;right:0;height:1.2rem;background:linear-gradient(to bottom,hsla(0,0%,100%,.05),transparent);z-index:1;pointer-events:none}.crt-effect{position:relative;overflow:hidden}.crt-effect:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,hsla(var(--primary) / .03),hsla(var(--primary) / .03) 1px,transparent 1px,transparent 2px);pointer-events:none}.app{display:flex;flex-direction:column;height:100vh;max-height:100vh;overflow:hidden}.font-default,.font-c64,.ascii-monospace,.app-title,button,label,input,textarea,select,option{color:#fff}.character{display:inline-block;text-align:center;vertical-align:baseline;box-sizing:border-box;overflow:hidden;position:relative;line-height:1}.font-default .character{width:.95em;min-width:.95em;max-width:.95em;height:1em}.font-c64 .character{width:1.1ch;min-width:1.1ch;max-width:1.1ch;height:1ch}:root{--bg-primary: #121212;--bg-secondary: #1e1e1e;--bg-tertiary: #252525;--text-primary: #ffffff;--text-secondary: #aaaaaa;--text-tertiary: #666666;--border-color: #333333;--accent-color: #50fa7b;--accent-alt: #8be9fd;--error-color: #ff5555;--success-color: #50fa7b;--shadow-color: rgba(0, 0, 0, .5)}@font-face{font-family:C64;src:url(/fonts/C64.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Courier New,Courier,monospace;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;font-size:14px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.ascii-monospace{font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;white-space:pre;letter-spacing:0;line-height:1}.font-default{font-family:Consolas,Monaco,Liberation Mono,monospace;font-variant-numeric:tabular-nums;letter-spacing:0;font-feature-settings:"tnum";line-height:1;font-weight:700}.font-c64{font-family:C64,Consolas,monospace;letter-spacing:0;line-height:1;font-smooth:never;-webkit-font-smoothing:none;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.font-default.ascii-monospace span{display:inline-block;width:1.2em;min-width:1.2em;max-width:1.2em;text-align:center;vertical-align:baseline;position:relative;overflow:hidden;box-sizing:border-box;white-space:pre;line-height:1;font-weight:700}.ascii-container{width:100%;height:calc(100vh - 128px);display:flex;flex-direction:column;overflow:hidden;margin:0;padding:0}.main-grid{display:grid;grid-template-columns:280px 1fr;height:100%;width:100%}.controls-section{height:100%;display:flex;flex-direction:column;border-right:1px solid #333;background-color:#1e1e1e;overflow-y:auto;overflow-x:hidden}.tab-content{flex:1;overflow-y:auto;overflow-x:hidden;background-color:#1e1e1e;display:flex;flex-direction:column}.action-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between}.action-buttons-main{justify-content:space-between}.action-button{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;background-color:#252525;color:var(--text-primary);border:1px solid #333;cursor:pointer;font-size:12px;transition:all .2s;border-radius:4px;min-width:calc(50% - 4px);max-width:100%;flex:1}.action-button .icon{color:var(--accent-color)}.action-button:hover{background-color:#333;border-color:var(--accent-color)}.action-button.primary{background-color:var(--accent-color);color:#121212;border-color:var(--accent-color)}.action-button.primary:hover{background-color:#60fb8b;border-color:#60fb8b}.section-header{padding:12px 12px 8px;font-size:12px;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid #333;background-color:#252525;font-weight:400;color:#50fa7b;cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;font-family:Consolas,Monaco,Liberation Mono,monospace}.section-header:after{content:"▼";font-size:10px;transition:transform .2s ease}.section-header.collapsed:after{transform:rotate(-90deg)}.control-group{padding:12px;border-bottom:1px solid #333;overflow:hidden;transition:max-height .3s ease,padding .3s ease,opacity .3s ease;max-height:2000px;opacity:1}.control-group.collapsed{max-height:0;padding-top:0;padding-bottom:0;border-bottom:none;opacity:0}.control-group-title{font-size:13px;margin-bottom:8px;color:var(--text-secondary);font-weight:500}.tabs{display:flex;width:100%;border-bottom:1px solid #333;background-color:#252525;height:36px}.tab{flex:1;padding:0 12px;text-align:center;background:#252525;color:#aaa;cursor:pointer;font-size:12px;text-transform:uppercase;letter-spacing:1px;position:relative;transition:all .2s;border:none;display:flex;align-items:center;justify-content:center;height:100%}.tab:hover{color:#fff}.tab.active{color:#50fa7b;background-color:#1e1e1e}.tab-panel{display:flex;flex-direction:column}.toggle-control{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:13px}.toggle-control input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:40px;height:20px;background-color:#252525;border:1px solid #333;position:relative;cursor:pointer;transition:all .2s}.toggle-control input[type=checkbox]:before{content:"";position:absolute;width:16px;height:16px;background-color:#aaa;top:1px;left:1px;transition:all .2s}.toggle-control input[type=checkbox]:checked{background-color:#50fa7b;border-color:#50fa7b}.toggle-control input[type=checkbox]:checked:before{background-color:#121212;left:21px}.button-group-container{margin-bottom:6px}.button-group-label{display:block;margin-bottom:6px;font-size:13px;color:#aaa}.button-group{display:flex;width:100%;border:1px solid #333}.button-group-item{flex:1;padding:8px 4px;text-align:center;background:transparent;color:#aaa;border:none;cursor:pointer;font-size:11px;transition:all .2s}.button-group-item:not(:last-child){border-right:1px solid #333}.button-group-item:hover{background-color:#252525;color:#fff}.button-group-item.active{background-color:#252525;color:#50fa7b}.output-section{height:100%;display:flex;flex-direction:column;position:relative;background-color:#121212;overflow:hidden}.action-bar{display:flex;justify-content:space-between;align-items:center;padding:0 12px;background-color:#1e1e1e;border-bottom:1px solid #333;height:36px}.status{font-size:12px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.output-section .action-buttons{display:flex;gap:8px;flex-wrap:nowrap}.output-actions{justify-content:flex-end}.output-section .action-button{min-width:auto;flex:0 0 auto}.ascii-output-container{flex:1;overflow:hidden;display:flex;justify-content:center;align-items:center;background-color:#121212;padding:10px;height:calc(100% - 36px);position:relative;width:100%;box-sizing:border-box}.ascii-output{background-color:#121212;padding:10px;border-radius:8px;white-space:pre;overflow:auto;font-family:Courier New,monospace;text-align:left;margin:0;line-height:1;box-shadow:0 2px 4px #0000001a;min-height:0;-webkit-user-select:text;user-select:text;display:block;box-sizing:border-box;max-height:none;max-width:none}.drag-drop-container{width:100%;margin-bottom:0}.drag-drop-area{width:100%;min-height:100px;border:1px dashed #333;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:16px;cursor:pointer;transition:all .2s;background-color:#252525;position:relative}.drag-drop-area:hover{border-color:#50fa7b}.drag-drop-area.drag-over{border-color:#50fa7b;background-color:#50fa7b1a}.drag-drop-content{display:flex;flex-direction:column;align-items:center;z-index:1}.drag-drop-icon{color:#50fa7b;opacity:.8;width:32px;height:32px;transition:transform .3s ease;margin-bottom:8px}.drag-drop-text{text-align:center;margin:0;font-size:14px;color:#aaa}.image-preview-container{width:100%;margin-top:10px;border:1px solid #333;border-radius:4px;overflow:hidden;background-color:#1a1a1a}.image-preview-header{display:flex;justify-content:space-between;padding:8px 12px;background-color:#252525;border-bottom:1px solid #333;font-size:12px;color:#aaa}.image-preview{display:flex;justify-content:center;align-items:center;padding:10px;background-color:#121212}.image-preview img{display:block;max-width:100%;max-height:150px;object-fit:contain;border-radius:2px}.file-input-hidden{display:none}.image-processing-indicator{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#000c;color:#50fa7b;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;z-index:5}.loading{color:#50fa7b;text-align:center}.progress-bar-container{width:100%;height:4px;background-color:#252525;margin-top:8px;overflow:hidden}.progress-bar{height:100%;background-color:#50fa7b;transition:width .3s ease}.processing-status{font-size:12px;color:#aaa;text-align:center;margin-top:8px}.slider-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.slider-label{font-size:13px;color:#aaa}.slider-value{font-size:12px;color:#50fa7b;font-family:monospace}.slider-container{margin-bottom:8px}input[type=range]{-webkit-appearance:none;width:100%;height:4px;background-color:#333;outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background-color:#50fa7b;cursor:grab}input[type=range]::-moz-range-thumb{width:12px;height:12px;background-color:#50fa7b;border:none;cursor:grab}input[type=range]::-ms-thumb{width:12px;height:12px;background-color:#50fa7b;cursor:grab}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:active::-webkit-slider-thumb{background-color:#8be9fd}input[type=range]:hover::-moz-range-thumb,input[type=range]:active::-moz-range-thumb{background-color:#8be9fd}input[type=range]:hover::-ms-thumb,input[type=range]:active::-ms-thumb{background-color:#8be9fd}.examples-container{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.example-button{padding:8px;background-color:#252525;color:var(--text-primary);border:1px solid #333;cursor:pointer;font-size:12px;transition:all .2s;border-radius:4px;min-width:calc(50% - 4px);text-align:center}.example-button:hover{background-color:#333;border-color:var(--accent-color);color:var(--accent-color)}@media (max-width: 768px){.main-grid{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:100%}.controls-section{height:auto;border-right:none;border-bottom:1px solid #333;max-height:50vh;overflow-y:auto}.output-section{height:50vh}.action-buttons{gap:6px}.action-button{padding:8px 6px;font-size:11px}.examples-container{gap:6px}}@media (max-width: 480px){.output-section .action-buttons{flex-wrap:wrap}.action-button{min-width:calc(50% - 3px);padding:6px 4px;font-size:10px}.action-buttons-main .action-button{flex-basis:calc(50% - 4px);flex-grow:0;margin-bottom:6px;text-align:center;padding:8px 4px;white-space:nowrap}.example-button{min-width:calc(50% - 4px);font-size:11px;padding:6px 4px}.button-group{flex-wrap:wrap}.button-group-item{flex:1 0 calc(50% - 1px);padding:6px 3px;font-size:10px}.button-group-item:nth-child(2n){border-right:none}.button-group-item:nth-child(-n+2){border-bottom:1px solid #333}.toggle-control{font-size:11px}.control-group{padding:8px}.section-header{padding:8px;font-size:11px}}@media (max-width: 360px){.action-button,.example-button{min-width:100%;margin-bottom:4px}.action-buttons,.examples-container{flex-direction:column;gap:4px}.output-actions{position:relative;width:100%;justify-content:space-between}.output-actions .action-button{font-size:9px;padding:4px}.status{font-size:10px;margin-bottom:4px}.action-bar{flex-direction:column;align-items:flex-start}}.binary-characters{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;box-sizing:border-box;overflow:hidden;position:relative;vertical-align:baseline;line-height:1;height:1ch}.font-c64 .binary-characters{width:1.1ch!important;min-width:1.1ch!important;max-width:1.1ch!important;display:inline-block!important;text-align:center!important;vertical-align:baseline!important;line-height:1!important;height:1ch!important;box-sizing:border-box!important;overflow:hidden!important;position:relative!important}.ansi-colored .ansi-0{color:#000}.ansi-colored .ansi-1{color:#f55}.ansi-colored .ansi-2{color:#50fa7b}.ansi-colored .ansi-3{color:#f1fa8c}.ansi-colored .ansi-4{color:#bd93f9}.ansi-colored .ansi-5{color:#ff79c6}.ansi-colored .ansi-6{color:#8be9fd}.ansi-colored .ansi-7{color:#f8f8f2}.ascii-output{background-color:#121212;padding:20px;border-radius:8px;white-space:pre;overflow:hidden;font-family:Courier New,monospace;text-align:left;margin:0;line-height:1;box-shadow:0 2px 4px #0000001a;flex:1;min-height:0;-webkit-user-select:text;user-select:text;max-height:100%;display:block;box-sizing:border-box}.ascii-output-container{display:flex;flex-direction:column;flex:1;background-color:#121212;position:relative;height:100%;overflow:hidden;border-radius:8px;box-shadow:0 2px 8px #0003;width:100%}.output-actions .action-button{background-color:#2a2a2a;border:1px solid #444;transition:background-color .2s,transform .1s}.output-actions .action-button:hover{background-color:#3a3a3a;transform:translateY(-1px)}.output-actions .action-button:active{transform:translateY(1px)}.ascii-output span{display:inline-block;box-sizing:border-box;position:relative;overflow:hidden;vertical-align:baseline}.for-export{overflow:visible!important;scrollbar-width:none!important}.for-export::-webkit-scrollbar{display:none!important}.for-export{position:fixed!important;left:-9999px!important;top:-9999px!important;overflow:visible!important;white-space:pre!important;line-height:1!important;background-color:#121212!important;padding:20px!important;max-width:none!important;max-height:none!important;min-width:0!important;min-height:0!important;display:block!important;width:auto!important;height:auto!important;transform:none!important;margin:0!important;z-index:-9999!important;font-smooth:always!important;-webkit-font-smoothing:antialiased!important;scrollbar-width:none!important}.for-export::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}.for-export span{display:inline-block!important;transform:none!important;opacity:1!important;box-sizing:border-box!important;vertical-align:baseline!important;line-height:1!important;height:1em!important;text-rendering:geometricPrecision!important}.for-export br{display:block!important;content:""!important;margin-top:0!important;line-height:1!important;height:1em!important;width:100%!important}.for-export div{display:block!important;white-space:pre!important;line-height:1!important;min-height:1em!important;width:100%!important;box-sizing:border-box!important;padding:0!important;margin:0!important}.for-export.ansi-colored .ansi-0{color:#000!important}.for-export.ansi-colored .ansi-1{color:#f55!important}.for-export.ansi-colored .ansi-2{color:#50fa7b!important}.for-export.ansi-colored .ansi-3{color:#f1fa8c!important}.for-export.ansi-colored .ansi-4{color:#bd93f9!important}.for-export.ansi-colored .ansi-5{color:#ff79c6!important}.for-export.ansi-colored .ansi-6{color:#8be9fd!important}.for-export.ansi-colored .ansi-7{color:#f8f8f2!important}.for-export .binary-characters,.for-export .detailed-char,.for-export .c64-block,.for-export .c64-char,.for-export .non-mono-char{display:inline-block!important;width:1ch!important;min-width:1ch!important;max-width:1ch!important;text-align:center!important;overflow:hidden!important;line-height:1!important;padding:0!important;margin:0!important;vertical-align:baseline!important;position:relative!important}.clipboard-content{white-space:pre!important;line-height:1!important;background-color:#121212!important;color:#fff!important;font-family:monospace!important}.for-export br,.clipboard-content br{display:block!important;content:""!important;margin-top:0!important;line-height:1!important;height:1em!important}.markdown-container{background-color:#121212!important;color:#fff!important;white-space:pre!important;line-height:1!important;padding:20px!important;border-radius:8px!important;font-family:Consolas,Liberation Mono,Menlo,Courier,monospace!important;overflow:hidden!important}.block-char-md{display:inline-block!important;width:1ch!important;text-align:center!important}.for-export .block-full{content:"█"!important}.for-export .block-medium{content:"▓"!important}.for-export .block-light{content:"▒"!important}.for-export .block-lightest{content:"░"!important}.detailed-char{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;box-sizing:border-box;overflow:hidden;position:relative;vertical-align:baseline}.font-c64 .detailed-char{line-height:1;height:1ch}.c64-block{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;box-sizing:border-box;overflow:hidden;position:relative;vertical-align:baseline;line-height:1;height:1ch}.c64-char,.font-c64 .detailed-char{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;vertical-align:baseline;position:relative;overflow:hidden;box-sizing:border-box;line-height:1;height:1ch}.font-c64.ascii-monospace span{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;vertical-align:baseline;position:relative;overflow:hidden;box-sizing:border-box;white-space:pre;line-height:1;height:1ch}.ascii-output br{line-height:1;display:block;content:"";margin-top:0;height:0}.font-default .binary-characters,.font-default .detailed-char{display:inline-block;width:1.1ch;min-width:1.1ch;max-width:1.1ch;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;box-sizing:border-box;overflow:hidden;position:relative;vertical-align:baseline;line-height:.85;height:1em;min-height:1em;font-weight:700}.controls-footer{margin-top:auto;padding:6px 8px;border-top:1px solid #333;background-color:#1e1e1e;font-size:10px;color:#666;text-align:center;flex-shrink:0}.controls-footer .app-name{font-weight:700;color:#50fa7b;font-family:Consolas,Monaco,Liberation Mono,monospace;letter-spacing:1px}.controls-footer .version{color:#aaa;margin-left:2px}.controls-footer .copyright{margin-top:2px}.controls-footer a{color:#8be9fd;text-decoration:none;transition:color .2s}.controls-footer a:hover{color:#50fa7b}
