@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--bg: #120e0c;--bg-card: #1c1612;--bg-elevated: #261e18;--bg-surface: #2f241d;--border: #3d3027;--border-glow: #5c4738;--text: #f0e8e0;--text-muted: #8a7a6a;--primary: #d4783c;--primary-hover: #e0884c;--primary-glow: rgba(212,120,60,.2);--success: #5a9c6a;--success-glow: rgba(90,156,106,.2);--warning: #d4a030;--warning-glow: rgba(212,160,48,.2);--danger: #d45050;--danger-glow: rgba(212,80,80,.2);--info: #6090c0;--info-glow: rgba(96,144,192,.2);--radius: 10px;--radius-sm: 6px;--radius-lg: 16px;--shadow: 0 4px 24px rgba(0,0,0,.5);--glass-bg: rgba(28,22,18,.7);--glass-border: rgba(61,48,39,.3);--glass-blur: 12px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}html{font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.5;overflow:hidden;height:100vh}#root{height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:56px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);flex-shrink:0;z-index:100}.header-left{display:flex;align-items:center;gap:12px}.header-title{font-size:1.05rem;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.header-icon{color:var(--primary);font-size:1.2em}.header-badge{font-size:.7rem;font-weight:500;background:var(--primary-glow);color:var(--primary);padding:2px 10px;border-radius:20px;letter-spacing:.03em;text-transform:uppercase}.header-center{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;overflow:hidden;padding:0 20px}.preset-selector{display:flex;gap:4px;overflow-x:auto;padding:2px;scrollbar-width:none}.preset-selector::-webkit-scrollbar{display:none}.preset-chip{font-family:var(--font-sans);font-size:.75rem;font-weight:500;padding:4px 12px;border-radius:20px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition);white-space:nowrap}.preset-chip:hover{color:var(--text);background:#ffffff0a;border-color:var(--glass-border)}.preset-chip.active{color:var(--primary);background:var(--primary-glow);border-color:#d4783c4d}.header-right{display:flex;align-items:center;gap:8px}.header-btn{display:flex;align-items:center;gap:6px;font-family:var(--font-sans);font-size:.8rem;font-weight:500;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--text);cursor:pointer;transition:all var(--transition)}.header-btn:hover{background:var(--bg-elevated);border-color:var(--border-glow)}.header-btn-secondary{background:transparent;color:var(--text-muted)}.header-btn-secondary:hover{color:var(--text);background:#ffffff0a}.btn-icon{font-size:1.1em;line-height:1}.app-body{display:flex;flex:1;overflow:hidden}.controls-panel{width:340px;min-width:340px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-right:1px solid var(--glass-border);overflow:hidden;display:flex;flex-direction:column}.controls-scroll{flex:1;overflow-y:auto;padding:16px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.controls-scroll::-webkit-scrollbar{width:4px}.controls-scroll::-webkit-scrollbar-track{background:transparent}.controls-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.controls-scroll::-webkit-scrollbar-thumb:hover{background:var(--border-glow)}.control-section{margin-bottom:20px;background:#00000026;border-radius:var(--radius);padding:14px;border:1px solid var(--glass-border)}.control-section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.04)}.control-section-header h3{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.section-icon{font-size:.9rem;opacity:.5}.texture-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.texture-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border-radius:var(--radius-sm);border:1px solid transparent;background:#ffffff05;color:var(--text-muted);cursor:pointer;transition:all var(--transition);font-family:var(--font-sans)}.texture-option:hover{background:#ffffff0d;color:var(--text);border-color:var(--glass-border)}.texture-option.active{background:var(--primary-glow);border-color:#d4783c4d;color:var(--primary)}.texture-icon{font-size:1.4rem;line-height:1}.texture-name{font-size:.72rem;font-weight:500}.param-list{display:flex;flex-direction:column;gap:10px}.param-row{display:flex;flex-direction:column;gap:4px}.param-header{display:flex;justify-content:space-between;align-items:center}.param-label{font-size:.75rem;font-weight:500;color:var(--text-muted)}.param-value{font-size:.72rem;font-weight:500;color:var(--text);font-family:var(--font-mono);background:#0003;padding:1px 8px;border-radius:4px;min-width:30px;text-align:center}.param-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:4px;background:#ffffff14;outline:none;cursor:pointer;transition:background var(--transition)}.param-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary);border:2px solid var(--bg-card);box-shadow:0 0 0 2px #d4783c4d;cursor:pointer;transition:all var(--transition)}.param-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.param-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--primary);border:2px solid var(--bg-card);cursor:pointer}.param-slider:hover{background:#ffffff1f}.color-groups{display:flex;flex-direction:column;gap:12px}.color-group{display:flex;flex-direction:column;gap:6px}.color-group-label{font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.color-pickers{display:grid;grid-template-columns:1fr 1fr;gap:4px}.color-picker-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;background:#0000001a}.color-label{font-size:.68rem;color:var(--text-muted);min-width:40px;flex-shrink:0}.color-input-wrap{display:flex;align-items:center;gap:4px;flex:1}.color-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:24px;height:24px;border-radius:4px;border:1px solid var(--glass-border);cursor:pointer;padding:0;flex-shrink:0}.color-input::-webkit-color-swatch-wrapper{padding:2px}.color-input::-webkit-color-swatch{border:none;border-radius:2px}.color-input::-moz-color-swatch{border:none;border-radius:2px}.color-hex{font-family:var(--font-mono);font-size:.65rem;background:transparent;border:none;color:var(--text);width:62px;outline:none;padding:2px 4px;border-radius:3px;transition:background var(--transition)}.color-hex:focus{background:#0003}.preview-panel{flex:1;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.preview-scene{width:100%;height:100%;display:flex;justify-content:center;align-items:center;background-size:cover;transition:background var(--transition)}.preview-card{width:520px;max-width:90vw;padding:0;overflow:hidden;transition:all .3s ease}.preview-card-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--glass-border)}.preview-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.preview-card-body{padding:20px}.preview-card-footer{padding:10px 20px;display:flex;justify-content:space-between}.preview-sample-buttons{display:flex;flex-wrap:wrap;gap:8px}.preview-sample-buttons button{transition:all var(--transition)}.preview-sample-buttons button:hover{filter:brightness(1.15);transform:translateY(-1px)}.preview-sample-buttons button:active{transform:translateY(0);filter:brightness(.95)}.preview-sample-cards{display:flex;gap:12px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-panel{background:var(--bg-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow),0 0 60px #0000004d;width:640px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--glass-border)}.modal-header h2{font-size:1rem;font-weight:600}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.2rem;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.modal-close:hover{background:#ffffff0f;color:var(--text)}.export-tabs{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--glass-border)}.export-tab{font-family:var(--font-sans);font-size:.8rem;font-weight:500;padding:10px 20px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:all var(--transition);margin-bottom:-1px}.export-tab:hover{color:var(--text)}.export-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.export-code{flex:1;overflow:auto;padding:16px 24px;margin:0;font-family:var(--font-mono);font-size:.75rem;line-height:1.6;color:var(--text);background:#0003;white-space:pre;-moz-tab-size:2;tab-size:2}.export-actions{display:flex;gap:8px;padding:14px 24px;border-top:1px solid var(--glass-border);justify-content:flex-end}@media(max-width:900px){.app-body{flex-direction:column}.controls-panel{width:100%;min-width:0;max-height:40vh;border-right:none;border-bottom:1px solid var(--glass-border)}.header-center,.preset-selector{display:none}.preview-card{width:95vw}.preview-sample-cards{flex-direction:column}}
