:root{--primary: #0ea5e9;--primary-hover: #38bdf8;--primary-muted: rgba(14, 165, 233, .15);--accent: #f59e0b;--accent-muted: rgba(245, 158, 11, .15);--background: #0c1222;--background-elevated: #111827;--surface: #1a2234;--surface-hover: #243044;--text: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--success: #10b981;--success-muted: rgba(16, 185, 129, .15);--border: rgba(148, 163, 184, .12);--border-strong: rgba(148, 163, 184, .2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--icon-filter: brightness(0) invert(1);--transition: .2s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,system-ui,-apple-system,sans-serif;background:var(--background);color:var(--text);min-height:100vh;display:flex;flex-direction:column;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 50% -20%,rgba(14,165,233,.15),transparent),radial-gradient(ellipse 60% 40% at 100% 50%,rgba(245,158,11,.05),transparent),radial-gradient(ellipse 60% 40% at 0% 80%,rgba(14,165,233,.05),transparent);pointer-events:none;z-index:0}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2.5rem 1.5rem;width:100%;max-width:960px;margin:0 auto;position:relative;z-index:1}#mobileNav{display:none}h1{font-size:2.25rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:.5rem}h2{font-size:1.25rem;font-weight:600;color:var(--text);margin-bottom:1.25rem;letter-spacing:-.01em}h3{font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem}#tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:.375rem;background:var(--surface);border-radius:var(--radius-xl);border:1px solid var(--border);width:100%;justify-content:center}.tab-button{background:transparent;color:var(--text-secondary);padding:.625rem 1rem;border-radius:var(--radius-md);border:none;font-size:.9rem;font-weight:500;cursor:pointer;transition:var(--transition);white-space:nowrap;flex-shrink:0}.tab-button:hover{background:var(--surface-hover);color:var(--text)}.tab-button.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.tabcontent{display:none;background:var(--surface);padding:2rem;border-radius:var(--radius-lg);border:1px solid var(--border);width:100%;box-shadow:var(--shadow-md)}.tabcontent.active{display:block}.input-group{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap;align-items:flex-end}.input-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}input[type=file]{background:var(--background-elevated);color:var(--text);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);font-size:.9rem;cursor:pointer;transition:var(--transition);flex:1;min-width:180px}input[type=file]::file-selector-button{background:var(--primary);color:#fff;border:none;padding:.5rem .75rem;border-radius:var(--radius-sm);margin-right:.75rem;font-weight:500;cursor:pointer}input[type=file]:hover{border-color:var(--primary)}input[type=number],input[type=text]{background:var(--background-elevated);color:var(--text);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);font-size:.95rem;width:140px;transition:var(--transition)}input[type=number]:focus,input[type=text]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-muted)}select{background:var(--background-elevated);color:var(--text);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);font-size:.95rem;cursor:pointer;transition:var(--transition);min-width:180px}select:hover{border-color:var(--primary)}select:focus{outline:none;border-color:var(--primary)}button{background:var(--primary);color:#fff;padding:.75rem 1.25rem;border-radius:var(--radius-md);border:none;font-size:.95rem;font-weight:600;cursor:pointer;transition:var(--transition);font-family:inherit}button:hover{background:var(--primary-hover);transform:translateY(-1px)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}canvas{border:1px solid var(--border);border-radius:var(--radius-md);margin:1.25rem 0;max-width:100%;background:var(--background-elevated)}a.download-link{background:var(--success);color:#fff;text-decoration:none;padding:.75rem 1.25rem;border-radius:var(--radius-md);font-weight:600;font-size:.95rem;display:inline-flex;align-items:center;gap:.5rem;transition:var(--transition);margin-top:1rem;border:none}a.download-link:hover{background:#059669;transform:translateY(-1px)}.checkbox-group{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary);cursor:pointer}.checkbox-group label{cursor:pointer;font-size:.9rem;color:var(--text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease forwards}#outputList{display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem}#outputList .download-link{margin-top:0}.audio-preview{margin-top:1.5rem;padding:1.5rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border);display:flex;flex-direction:column;gap:1rem;align-items:center}.audio-preview audio{width:100%;max-width:480px;border-radius:var(--radius-md);height:48px}#audioProgress,#csvProgress{width:100%;display:flex;flex-direction:column;gap:.5rem}.palette-upload-section{margin-bottom:1.5rem}.upload-controls{display:flex;gap:.75rem;padding:1rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.upload-controls input[type=file]{flex:1}.clear-btn{background:var(--surface);color:var(--text-secondary);padding:.75rem;border-radius:var(--radius-md);border:1px solid var(--border);font-size:1rem;cursor:pointer;transition:var(--transition);width:48px;height:48px;display:flex;align-items:center;justify-content:center}.clear-btn:hover{border-color:var(--primary);color:var(--text)}.file-info{color:var(--text-muted);font-size:.8rem;margin-top:.5rem}.palette-settings{margin-bottom:1.5rem;padding:1.5rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.palette-selection{margin-bottom:1.25rem}.palette-preview h4{margin-bottom:.5rem;font-size:.875rem}.palette-colors{display:flex;flex-wrap:wrap;gap:.25rem;padding:1rem;background:var(--surface);border-radius:var(--radius-md);margin-top:.5rem;border:1px solid var(--border)}.palette-color{width:24px;height:24px;border-radius:4px;border:1px solid var(--border);cursor:pointer;transition:var(--transition)}.palette-color:hover{transform:scale(1.15)}.palette-options{display:flex;gap:1rem;flex-wrap:wrap}.palette-comparison{margin-top:1.5rem;padding:1.5rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.comparison-container{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.25rem}.image-container{text-align:center}.image-container h4{margin-bottom:.75rem;font-size:.9rem}.image-container canvas{max-width:100%;max-height:360px}textarea{font-family:DM Sans,system-ui,sans-serif;background:var(--background-elevated);color:var(--text);padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);font-size:.95rem;resize:vertical;min-height:100px;transition:var(--transition)}textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-muted)}textarea[readonly]{font-family:JetBrains Mono,monospace;font-size:.85rem;cursor:default}.tabcontent{contain:layout style paint}.tabcontent:not(.active){contain:strict}#mobileNav{width:100%}#hamburger{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.75rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text);font-weight:600;transition:var(--transition)}#hamburger:hover{border-color:var(--primary)}#mobileMenu{margin-top:.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);overflow:hidden}.mobile-menu-item{width:100%;text-align:left;padding:.75rem 1rem;border:none;background:transparent;color:var(--text);font-size:.95rem;cursor:pointer;transition:var(--transition)}.mobile-menu-item:hover{background:var(--surface-hover)}.mobile-menu-item.active{background:var(--primary-muted);color:var(--primary)}.tabcontent>p{color:var(--text-secondary);font-size:.9rem;margin-bottom:1.25rem;line-height:1.5}.input-group-stack{flex-direction:column;align-items:stretch}.input-group-stack label{margin-bottom:.375rem}.input-group-stack select,.input-group-stack input[type=number],.input-group-stack input[type=text]{width:100%}.button-row{display:flex;gap:.75rem;margin-top:.75rem;flex-wrap:wrap}.button-row button{flex:1;min-width:120px}.min-h-120{min-height:120px}.min-h-200{min-height:200px}.font-mono{font-family:JetBrains Mono,Courier New,monospace;font-size:.875rem}.qrcode-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1.25rem 0}.qrcode-preview{margin-top:1.5rem;padding:1.5rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border);text-align:center}.pagnai-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}.value-display{color:var(--text-secondary);font-size:.875rem;margin-top:.25rem}.mod-controls{margin-top:1rem;padding:1rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.mod-controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem}input[type=color]{width:100%;height:44px;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;padding:2px;background:var(--background-elevated)}input[type=range]{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--background-elevated);border-radius:999px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:2px solid white;box-shadow:var(--shadow-sm)}.site-footer{background:var(--surface);border-top:1px solid var(--border);padding:1.25rem;margin-top:auto;width:100%}.footer-content{max-width:960px;margin:0 auto;display:flex;justify-content:center;align-items:center}.github-link{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--background-elevated);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;color:var(--text);font-weight:500;font-size:.9rem;transition:var(--transition)}.github-link:hover{background:var(--primary);border-color:var(--primary);color:#fff}.github-icon{width:20px;height:20px;filter:var(--icon-filter)}.github-link:hover .github-icon{filter:brightness(0) invert(1)}.progress-container{width:100%;display:flex;flex-direction:column;gap:.5rem}.progress-header{display:flex;justify-content:space-between;color:var(--text-secondary);font-size:.875rem}.progress-track{width:100%;height:8px;background:var(--background-elevated);border-radius:999px;overflow:hidden}.progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--primary),var(--primary-hover));border-radius:999px;transition:width .3s ease}.image-result{text-align:center;margin-top:1.5rem}#tableImage{max-width:100%;border-radius:var(--radius-md);border:1px solid var(--border);background:#fff}#pagnaiModControls{margin-top:1rem;padding:1rem;background:var(--background-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.notification{position:fixed;bottom:1.5rem;right:1.5rem;padding:.875rem 1.5rem;border-radius:var(--radius-md);color:#fff;font-weight:500;font-size:.9rem;z-index:1000;box-shadow:var(--shadow-lg);transition:var(--transition)}.notification.success{background:var(--success)}.notification.error{background:#ef4444}.notification.info{background:var(--primary)}@media (max-width: 768px){.main-content{padding:1.5rem 1rem}.comparison-container{grid-template-columns:1fr;gap:1rem}#mobileNav{display:block}#tabs{display:none}.tabcontent{padding:1.25rem}.input-group{gap:.75rem}h1{font-size:1.75rem}h2{font-size:1.125rem}.mobile-menu-item{padding:.875rem 1rem}}
