@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg-dark: #141413;--bg-light: #faf9f5;--mid-gray: #b0aea5;--light-gray: #e8e6dc;--accent: #d97757;--accent-hover: #c86641;--green: #2a7d4f;--green-hover: #1e5c3a;--blue: #4a7fb5;--blue-hover: #3a6a9e}*{margin:0;padding:0;box-sizing:border-box}body{font-family:JetBrains Mono,monospace;background:linear-gradient(135deg,var(--bg-light) 0%,#f5f3ee 100%);min-height:100vh;color:var(--bg-dark)}.container{display:flex;min-height:100vh;padding:20px;gap:20px}.sidebar{width:320px;flex-shrink:0;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;box-shadow:0 10px 30px #1414131a;display:flex;flex-direction:column;max-height:calc(100vh - 40px)}.sidebar-header{padding:24px 24px 16px;border-bottom:1px solid var(--light-gray);flex-shrink:0}.sidebar-content{flex:1;overflow-y:auto;padding:20px 24px}.sidebar-footer{padding:16px 24px 24px;border-top:1px solid var(--light-gray);flex-shrink:0;background:#fffffffa;border-radius:0 0 12px 12px}.sidebar-credit{text-align:center;font-size:11px;color:var(--mid-gray);margin-top:16px}.sidebar-credit a{color:var(--accent);text-decoration:none}.sidebar-credit a:hover{text-decoration:underline}.canvas-area{flex:1;display:flex;align-items:center;justify-content:center;padding:20px}.canvas-container{border-radius:12px;overflow:hidden;border:1px solid #ddd;background:#fff}.canvas-container svg{display:block;width:100%;height:100%}.sidebar h1{font-size:20px;font-weight:700;margin-bottom:0}.sidebar .subtitle{color:var(--mid-gray);font-size:12px;margin-bottom:0;line-height:1.5}.back-icon,.back-icon svg{color:var(--mid-gray);text-decoration:none;display:flex;align-items:center;cursor:pointer}.icon-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:none;color:var(--mid-gray);cursor:pointer;transition:all .2s ease}.icon-btn:hover{background:var(--light-gray);color:var(--bg-dark)}.control-section{margin-bottom:28px}.sidebar-content .control-section:first-child{margin-top:0}.sidebar-content .control-section:last-child{margin-bottom:0}.control-section h3{font-size:14px;font-weight:700;margin-bottom:16px;text-transform:uppercase;letter-spacing:.05em;color:var(--bg-dark);border-bottom:1px solid var(--light-gray);padding-bottom:8px}.control-group{margin-bottom:20px}.control-group:last-child{margin-bottom:0}.control-group label{display:block;font-size:12px;font-weight:500;margin-bottom:8px}.slider-container{display:flex;align-items:center;gap:12px}.slider-container input[type=range]{flex:1;height:4px;background:var(--light-gray);border-radius:2px;outline:none;-webkit-appearance:none;cursor:pointer}.slider-container input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--accent);border-radius:50%;cursor:pointer}.slider-container input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--accent);border-radius:50%;border:none;cursor:pointer}.value-display{font-size:11px;color:var(--mid-gray);min-width:50px;text-align:right}.color-group{margin-bottom:16px}.color-group label{display:block;font-size:11px;color:var(--mid-gray);margin-bottom:4px}.color-picker-container{display:flex;align-items:center;gap:8px}.color-picker-container input[type=color]{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;background:none;padding:0}.color-value{font-size:11px;color:var(--mid-gray)}.select-container select{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--light-gray);font-family:inherit;font-size:11px;background:var(--bg-light);cursor:pointer}.button-group{display:flex;gap:0}.button-group-btn{flex:1;padding:6px 12px;border:1px solid var(--light-gray);background:var(--bg-light);font-family:JetBrains Mono,monospace;font-size:11px;cursor:pointer;transition:all .15s ease}.button-group-btn:first-child{border-radius:6px 0 0 6px}.button-group-btn:last-child{border-radius:0 6px 6px 0;border-left:none}.button-group-btn:hover{background:var(--light-gray)}.button-group-btn.active{background:var(--bg-dark);color:var(--bg-light);border-color:var(--bg-dark)}.button{padding:8px 12px;border:none;border-radius:8px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s ease;background:var(--bg-light);color:var(--bg-dark);border:1px solid var(--light-gray);display:inline-flex;align-items:center;gap:5px}.button:hover{background:var(--light-gray)}.button.primary{background:var(--accent);color:#fff;border:none}.button.primary:hover{background:var(--accent-hover)}.button.svg-btn{background:var(--green);color:#fff;border:none}.button.svg-btn:hover{background:var(--green-hover)}.button.png-btn{background:var(--blue);color:#fff;border:none}.button.png-btn:hover{background:var(--blue-hover)}.button-row{display:flex;gap:6px}.button svg{width:14px;height:14px}.row{display:flex;gap:16px}.row .control-group{flex:1;min-width:0;margin-bottom:0}.row .slider-container{min-width:0}.row .slider-container input[type=range]{min-width:0;width:100%}.row .value-display{min-width:35px}.layer-info{background:var(--bg-light);padding:12px;border-radius:8px;font-size:11px;color:var(--mid-gray);line-height:1.6}.layer-info strong{color:var(--mid-gray);font-weight:600}.index-container{max-width:1200px;margin:0 auto;padding:40px 20px}.index-header{text-align:center;margin-bottom:48px}.index-header h1{font-size:32px;font-weight:700;margin-bottom:12px;color:var(--bg-dark)}.index-header .tagline{font-size:14px;color:var(--mid-gray);max-width:500px;margin:0 auto;line-height:1.6}.generators-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1200px;margin:0 auto}.generator-card{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;box-shadow:0 4px 20px #14141314;overflow:hidden;text-decoration:none;color:inherit;transition:all .3s ease;display:flex;flex-direction:column}.generator-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #14141326}.card-preview{aspect-ratio:1/1;background:var(--light-gray);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-preview svg,.card-preview img{width:100%;height:100%;object-fit:cover}.card-preview.ordered-dithering{padding:24px}.card-preview.ordered-dithering img{object-fit:contain}.card-content{padding:20px}.card-content h2{font-size:16px;font-weight:600;margin-bottom:8px}.card-content p{font-size:12px;color:var(--mid-gray);line-height:1.5}.card-tag{display:inline-block;font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px;background:var(--light-gray);border-radius:4px;margin-top:12px;color:var(--mid-gray)}.index-footer{text-align:center;margin-top:60px;padding-top:24px;border-top:1px solid var(--light-gray);font-size:11px;color:var(--mid-gray)}.index-footer a{color:var(--accent);text-decoration:none}.index-footer a:hover{text-decoration:underline}.upload-area{border:2px dashed var(--light-gray);border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:all .2s ease;background:var(--bg-light)}.upload-area:hover{border-color:var(--accent);background:#d977570d}.upload-area.has-image{border-style:solid;border-color:var(--green)}.upload-area svg{width:32px;height:32px;stroke:var(--mid-gray);margin-bottom:8px}.upload-area p{font-size:11px;color:var(--mid-gray);margin:0}.upload-area .filename{font-size:11px;color:var(--green);font-weight:500;word-break:break-all}.placeholder-message{text-align:center;color:var(--mid-gray);font-size:14px;padding:40px}.seed-input{flex:1;padding:6px 10px;border-radius:6px;border:1px solid var(--light-gray);font-family:inherit;font-size:11px;background:var(--bg-light);width:80px}.seed-button{padding:4px 8px;font-size:10px}.flex-between{display:flex;justify-content:space-between;align-items:flex-start}.flex-center{display:flex;align-items:center;justify-content:center}.flex-row{display:flex;align-items:center}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mt-12{margin-top:12px}.flex-1{flex:1}.header-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.header-row h1{flex:1}.icon-buttons{display:flex;gap:2px}.color-row{display:flex;gap:12px}.button-full{flex:1;justify-content:center}.icon-success{fill:var(--green)}.hidden{display:none}.mt-4{margin-top:4px}
