@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&family=Playfair+Display:ital,wght@1,400;1,500&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{color-scheme:dark;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:13px;line-height:1.5;color:#e4e4e7;background:#0d0d0d;min-height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased}#root{height:100vh;display:flex;overflow:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input{font-family:inherit}:root{--panel-w: 320px;--bg: #0d0d0d;--fg: #e4e4e7;--muted: #71717a;--border: rgba(255, 255, 255, .06);--accent: #a78bfa;--accent-dim: rgba(167, 139, 250, .15);--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}.bloom-app{display:flex;width:100vw;height:100vh;overflow:hidden}.control-panel{width:var(--panel-w);min-width:var(--panel-w);height:100vh;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:28px 20px 20px;gap:24px}.control-panel::-webkit-scrollbar{width:4px}.control-panel::-webkit-scrollbar-track{background:transparent}.control-panel::-webkit-scrollbar-thumb{background:#ffffff0f}.bloom-header{display:flex;flex-direction:column;gap:4px}.bloom-title{font-family:Playfair Display,Georgia,Times New Roman,serif;font-style:italic;font-weight:400;font-size:clamp(1.8rem,3vw,2.2rem);color:var(--fg);line-height:1.1;letter-spacing:-.01em}.bloom-subtitle{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.02em}.section-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-bottom:8px}.preset-row{display:flex;gap:6px}.preset-thumb{width:32px;height:32px;border:1px solid var(--border);cursor:pointer;transition:border-color .15s;padding:0;background:none;position:relative;flex-shrink:0}.preset-thumb:hover{border-color:#ffffff26}.preset-thumb.active{border-color:var(--accent)}.preset-thumb canvas{display:block;width:100%;height:100%}.algo-list{display:flex;flex-direction:column;gap:2px}.algo-btn{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12px;font-family:var(--mono);color:var(--muted);border:1px solid transparent;transition:color .12s,background .12s,border-color .12s;cursor:pointer;background:none;width:100%;text-align:left}.algo-btn:hover{color:var(--fg);background:#ffffff05}.algo-btn.active{color:var(--accent);border-color:var(--accent-dim);background:#a78bfa0a}.algo-indicator{width:6px;height:6px;border-radius:50%;border:1px solid var(--muted);flex-shrink:0;transition:background .12s,border-color .12s}.algo-btn.active .algo-indicator{background:var(--accent);border-color:var(--accent)}.slider-group{display:flex;flex-direction:column;gap:8px}.slider-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.slider-label{font-size:11px;color:var(--muted);min-width:50px;text-transform:uppercase;letter-spacing:.06em}.slider-value{font-family:var(--mono);font-size:11px;color:var(--fg);min-width:36px;text-align:right}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;height:2px;background:#ffffff1a;outline:none;border-radius:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:10px;height:10px;background:var(--accent);border:none;cursor:pointer}input[type=range]::-moz-range-thumb{width:10px;height:10px;background:var(--accent);border:none;cursor:pointer;border-radius:0}.palette-grid{display:flex;flex-direction:column;gap:4px}.palette-row{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 6px;border:1px solid transparent;transition:border-color .12s}.palette-row:hover{border-color:#ffffff14}.palette-row.active{border-color:var(--accent-dim)}.palette-swatch{display:flex;gap:1px}.palette-swatch-color{width:12px;height:12px}.palette-name{font-size:10px;font-family:var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.palette-row.active .palette-name{color:var(--accent)}.action-row{display:flex;gap:6px}.action-btn{flex:1;padding:7px 0;font-size:11px;font-family:var(--mono);font-weight:500;color:var(--muted);border:1px solid var(--border);background:transparent;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:color .12s,border-color .12s,background .12s}.action-btn:hover{color:var(--fg);border-color:#ffffff26;background:#ffffff05}.action-btn.primary{color:var(--accent);border-color:var(--accent-dim)}.action-btn.primary:hover{background:var(--accent-dim)}.info-strip{margin-top:auto;display:flex;flex-direction:column;gap:2px;padding-top:16px;border-top:1px solid var(--border)}.info-line{font-family:var(--mono);font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.info-val{color:#e4e4e799}.canvas-area{flex:1;display:flex;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden}.canvas-wrap{position:relative}.canvas-wrap canvas{display:block;background:#000}.boot-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10}.boot-text{font-family:Playfair Display,Georgia,Times New Roman,serif;font-style:italic;font-size:clamp(2rem,5vw,3.5rem);color:var(--fg);opacity:0;animation:bootFade 2.5s ease forwards}@keyframes bootFade{0%{opacity:0}20%{opacity:.9}60%{opacity:.9}to{opacity:0}}@media(max-width:720px){.bloom-app{flex-direction:column}.control-panel{width:100%;min-width:100%;height:auto;max-height:40vh;border-right:none;border-bottom:1px solid var(--border);padding:16px;gap:14px}.canvas-area{flex:1}}
