:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#000;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;padding:0;width:100vw;min-height:100vh}#root{width:100%;min-height:100vh}.app{width:100%;min-height:100vh;background-color:#000;padding:2rem;box-sizing:border-box;display:flex;flex-direction:column;align-items:center}.patterns-header{text-align:center;margin-bottom:3rem;padding-top:2rem;width:100%;max-width:1400px}.patterns-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2rem;max-width:1400px;width:100%;margin:0 auto;justify-items:center}.pattern-link{display:flex;flex-direction:column;text-decoration:none;color:#ffffffde;transition:transform .2s ease,opacity .2s ease;cursor:pointer;align-items:center;width:100%;max-width:300px}.pattern-link:hover{transform:scale(1.05);opacity:.9}.patterns-header{text-align:center;margin-bottom:3rem;padding-top:2rem}.patterns-title{font-size:2.5rem;font-weight:700;color:#ffffffde;margin:0 0 .5rem;letter-spacing:-.02em}.patterns-author{font-size:1.25rem;color:#fff9;margin:0;font-style:italic}.pattern-image-container{width:100%;aspect-ratio:1 / 1;background-color:#1a1a1a;border:1px solid rgba(255,255,255,.1);overflow:hidden;margin-bottom:.5rem}.pattern-image{width:100%;height:100%;object-fit:cover;display:block}.pattern-name{font-size:1rem;text-align:center;padding:.5rem 0}@media(max-width:768px){.app{padding:1rem}.patterns-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.5rem}}@media(min-width:1024px){.patterns-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}.canvas-container{width:100%;height:100%;position:relative}.canvas-container canvas{display:block;width:100%;height:100%}.canvas-stats{position:absolute;bottom:1rem;left:1rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.75rem;color:#10b981;background-color:#000000b3;padding:.5rem;border-radius:.25rem;pointer-events:none}.canvas-stats div{margin:0;line-height:1.5}.control-panel{display:flex;flex-direction:column;gap:.75rem;padding-bottom:2rem}.control-section{background-color:#0f172a80;padding:.75rem;border-radius:.5rem;border:1px solid #334155}.control-section-title{font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:700;margin-bottom:.75rem;letter-spacing:.05em}.control-buttons-row{display:flex;gap:.5rem;margin-bottom:.5rem}.control-button{flex:1;padding:.5rem;border-radius:.25rem;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1px solid;transition:background-color .2s,color .2s;cursor:pointer}.control-button-pause{background-color:#78350f80;color:#f59e0b;border-color:#78350f}.control-button-pause:hover{background-color:#78350f}.control-button-resume{background-color:#022c2280;color:#10b981;border-color:#022c22}.control-button-resume:hover{background-color:#022c22}.control-button-restart{background-color:#1e3a8a4d;color:#60a5fa;border-color:#1e3a8a80}.control-button-restart:hover{background-color:#1e3a8a80}.control-button-clear{background-color:#1e293b;color:#94a3b8;border-color:#475569}.control-button-clear:hover{background-color:#475569;color:#fff}.control-button-full{width:100%;padding:.5rem;border-radius:.25rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background-color:#475569;color:#cbd5e1;border:1px solid #475569;transition:background-color .2s,color .2s;cursor:pointer}.control-button-full:hover{background-color:#475569;color:#fff}.color-settings{display:flex;flex-direction:column;gap:.75rem}.density-mapping-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.density-mapping-title{font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:700;letter-spacing:.05em;white-space:nowrap}.density-color-inputs{display:flex;align-items:center;gap:1rem;flex:1}.density-color-item{display:flex;align-items:center;gap:.5rem}.density-color-item .color-label{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase;white-space:nowrap}.color-setting-row{display:flex;align-items:center;justify-content:space-between}.color-label{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase}.color-input{height:1.5rem;width:3rem;background-color:transparent;border:none;cursor:pointer;border-radius:.25rem}.render-mode-toggle{display:flex;text-align:center;border-radius:.25rem;padding:.25rem;border:1px solid #334155}.render-mode-button{flex:1;padding:.375rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:.25rem;transition:background-color .2s,color .2s;cursor:pointer;background:none;border:none;color:#64748b}.render-mode-button:hover{color:#cbd5e1}.render-mode-button-active{background-color:#475569;color:#34d399;box-shadow:0 1px 2px #0000000d}.speed-control{display:flex;flex-direction:column;gap:.5rem}.speed-header{display:flex;justify-content:space-between;align-items:center}.speed-label{font-size:.75rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.speed-value{font-size:.75rem;color:#34d399;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.speed-range{width:100%;height:.5rem;background-color:#475569;border-radius:.5rem;appearance:none;cursor:pointer}.speed-range::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background-color:#10b981;cursor:pointer}.speed-range::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background-color:#10b981;cursor:pointer;border:none}.speed-range:hover::-webkit-slider-thumb{background-color:#34d399}.speed-range:hover::-moz-range-thumb{background-color:#34d399}.speed-range-labels{display:flex;justify-content:space-between;font-size:10px;color:#475569;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;margin-top:.25rem}.parameters-section{display:flex;flex-direction:column}.parameters-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.parameters-title{font-size:.75rem;color:#64748b;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.reset-button{font-size:10px;color:#64748b;background:none;border:none;cursor:pointer;text-decoration:underline;text-decoration-color:#475569;text-underline-offset:2px}.reset-button:hover{color:#fff}.slider-input{margin-bottom:1rem}.slider-label-row{display:flex;justify-content:space-between;margin-bottom:.25rem}.slider-label{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase}.slider-value{font-size:.75rem;color:#34d399;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.slider-input-range{width:100%;height:.5rem;background-color:#475569;border-radius:.5rem;appearance:none;cursor:pointer}.slider-input-range::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background-color:#10b981;cursor:pointer}.slider-input-range::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background-color:#10b981;cursor:pointer;border:none}.slider-input-range:hover::-webkit-slider-thumb{background-color:#34d399}.slider-input-range:hover::-moz-range-thumb{background-color:#34d399}.number-inputs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.number-input{margin-bottom:1rem}.number-input-label{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase;display:block;margin-bottom:.25rem}.number-input-field{width:80px;background-color:#0f172a;border:1px solid #475569;color:#34d399;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.875rem;border-radius:.25rem;padding:.25rem .5rem}.number-input-field:focus{outline:none;border-color:#10b981}.presets-navigation{position:relative}.presets-nav-container{display:flex;align-items:center;gap:.5rem;position:relative}.preset-nav-button{background-color:#1e293b;color:#94a3b8;border:1px solid #475569;border-radius:.25rem;padding:.5rem .75rem;font-size:1rem;font-weight:700;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s;min-width:2.5rem}.preset-nav-button:hover{background-color:#475569;color:#fff;border-color:#64748b}.preset-nav-current{flex:1;background-color:#0f172a;color:#cbd5e1;border:1px solid #1e293b;border-radius:.25rem;padding:.5rem .75rem;font-size:.875rem;font-weight:700;cursor:pointer;text-align:center;transition:background-color .2s,color .2s,border-color .2s}.preset-nav-current:hover{background-color:#1e293b;color:#34d399;border-color:#475569}.presets-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background-color:#0f172a;border:1px solid #1e293b;border-radius:.25rem;max-height:12rem;overflow-y:auto;z-index:1000;box-shadow:0 4px 6px -1px #0000004d}.preset-dropdown-item{width:100%;text-align:left;background:none;border:none;padding:.75rem;cursor:pointer;transition:background-color .2s;border-bottom:1px solid #1e293b}.preset-dropdown-item:last-child{border-bottom:none}.preset-dropdown-item:hover{background-color:#1e293b}.preset-dropdown-item-active{background-color:#022c224d}.preset-dropdown-item-active:hover{background-color:#022c2280}.preset-dropdown-name{font-size:.875rem;font-weight:700;color:#cbd5e1;margin-bottom:.25rem}.preset-dropdown-item-active .preset-dropdown-name{color:#34d399}.preset-dropdown-params{font-size:.625rem;color:#475569;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.preset-clear-checkbox{display:flex;align-items:center;gap:.5rem;margin-top:.75rem;font-size:.75rem;color:#94a3b8;cursor:pointer;-webkit-user-select:none;user-select:none}.preset-clear-checkbox input[type=checkbox]{width:1rem;height:1rem;cursor:pointer;accent-color:#34d399}.preset-clear-checkbox span{color:#cbd5e1}.presets-section{border-top:1px solid #475569;padding-top:1rem}.presets-buttons{display:flex;gap:.5rem;margin-bottom:1rem}.preset-button{flex:1;padding:.5rem .25rem;border-radius:.25rem;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1px solid;transition:background-color .2s,color .2s;cursor:pointer;white-space:nowrap}.preset-button-save{background-color:#022c224d;color:#34d399;border-color:#022c2280}.preset-button-save:hover{background-color:#022c2280}.preset-button-load{background-color:#1e293b;color:#94a3b8;border-color:#475569;display:flex;align-items:center;justify-content:center;text-align:center}.preset-button-load:hover{background-color:#475569;color:#fff}.preset-button-download{background-color:#1e293b;color:#94a3b8;border-color:#475569}.preset-button-download:hover{background-color:#475569;color:#fff}.preset-button-download:disabled{opacity:.5;cursor:not-allowed}.preset-file-input{display:none}.presets-list{display:flex;flex-direction:column;gap:.5rem;max-height:10rem;overflow-y:auto;padding-right:.25rem}.preset-item{background-color:#0f172a;padding:.5rem;border-radius:.25rem;border:1px solid #1e293b;display:flex;justify-content:space-between;align-items:center}.preset-item-button{text-align:left;flex:1;background:none;border:none;cursor:pointer;padding:0}.preset-item-name{font-size:.75rem;font-weight:700;color:#cbd5e1;transition:color .2s}.preset-item:hover .preset-item-name{color:#34d399}.preset-item-params{font-size:10px;color:#475569;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.preset-remove-button{margin-left:.5rem;padding:.25rem;color:#475569;background:none;border:none;cursor:pointer;transition:color .2s}.preset-remove-button:hover{color:#f87171}.preset-empty{font-size:10px;color:#475569;font-style:italic;text-align:center;padding:.5rem 0}.download-modal-overlay{position:fixed;inset:0;background-color:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out;padding-top:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.download-modal-content{background-color:#1a1a1a;border:1px solid #333;border-top:none;border-radius:0 0 8px 8px;padding:1rem 2rem 2rem;max-width:90vw;max-height:95vh;position:relative;display:flex;flex-direction:column;gap:1rem;animation:slideUp .2s ease-out;margin-top:0;overflow-y:auto}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.download-modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#ffffffb3;font-size:2rem;line-height:1;cursor:pointer;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.download-modal-close:hover{color:#fff}.download-modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#ffffffde;text-align:center;flex-shrink:0}.download-modal-preview{max-width:100%;flex:1 1 auto;min-height:0;overflow:auto;border:1px solid #333;border-radius:4px;background-color:#0a0a0a;display:flex;align-items:center;justify-content:center;position:relative;scrollbar-width:none;-ms-overflow-style:none}.download-modal-preview::-webkit-scrollbar{display:none}.download-modal-preview img{max-width:100%;max-height:60vh;display:block}.download-modal-size-selector{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;padding:.75rem 0;border-top:1px solid #333;border-bottom:1px solid #333;flex-shrink:0}.size-option{padding:.5rem 1rem;background-color:transparent;color:#ffffffb3;border:1px solid #333;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.size-option:hover{background-color:#ffffff0d;color:#ffffffe6}.size-option-active{background-color:#0ea5e933;border-color:#0ea5e9;color:#0ea5e9}.size-option-active:hover{background-color:#0ea5e94d}.custom-size-inputs{display:flex;gap:1rem;justify-content:center;align-items:center;padding:.75rem 0;flex-shrink:0}.custom-size-inputs label{display:flex;align-items:center;gap:.5rem;color:#ffffffb3;font-size:.875rem}.custom-size-input{padding:.5rem;background-color:#0a0a0a;border:1px solid #333;border-radius:4px;color:#ffffffde;font-size:.875rem;width:100px}.custom-size-input:focus{outline:none;border-color:#0ea5e9}.renderer-bar{display:flex;align-items:center;gap:1rem;justify-content:center;padding:.5rem 0;border-top:1px solid #333;border-bottom:1px solid #333}.renderer-label{color:#ffffffb3;font-size:.875rem;font-weight:500}.renderer-checkbox{display:flex;align-items:center;gap:.5rem;color:#ffffffb3;font-size:.875rem;cursor:pointer;transition:color .2s ease}.renderer-checkbox:hover{color:#ffffffe6}.renderer-checkbox input[type=checkbox]{cursor:pointer;width:1rem;height:1rem;accent-color:#0ea5e9}.download-modal-actions{display:flex;gap:1rem;align-items:center;justify-content:center;flex-shrink:0}.download-name-input{display:flex;align-items:center;gap:.5rem;color:#ffffffb3;font-size:.875rem}.name-input{padding:.5rem;background-color:#0a0a0a;border:1px solid #333;border-radius:4px;color:#ffffffde;font-size:.875rem;min-width:150px}.name-input:focus{outline:none;border-color:#0ea5e9}.download-modal-button{padding:.5rem 1rem;background-color:#000;color:#fff;border:none;border-radius:4px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease,opacity .2s ease;display:flex;align-items:center;gap:.375rem}.download-modal-button:disabled{cursor:not-allowed;opacity:.7}.download-modal-button-loading{position:relative;pointer-events:none}.download-icon{font-size:1.5rem;line-height:1}.download-modal-button:hover:not(:disabled){background-color:#000}.download-modal-button-secondary{padding:.75rem 1.5rem;background-color:transparent;color:#ffffffb3;border:1px solid #333;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.download-modal-button-secondary:hover{background-color:#333;color:#fff}.symmetry-attractor-container{display:flex;flex-direction:column;min-height:100vh;width:100%;overflow-y:auto;overflow-x:hidden;background-color:#0f172a;color:#e2e8f0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}@media(min-width:768px){.symmetry-attractor-container{flex-direction:row;height:100vh;overflow:hidden}}.symmetry-attractor-sidebar{width:100%;flex-shrink:0;border-right:1px solid #334155;background-color:#1e293b80;padding:1rem;overflow-y:auto;order:2;padding-top:calc(100vw + 1rem)}@media(min-width:768px){.symmetry-attractor-sidebar{width:20rem;order:1;padding-top:1rem}}.symmetry-attractor-canvas-area{flex:1;position:relative;background-color:#000;display:flex;align-items:center;justify-content:center;overflow:hidden;order:1;position:fixed;top:0;left:0;right:0;z-index:10;width:100%;aspect-ratio:1;flex-shrink:0;height:100vw}@media(min-width:768px){.symmetry-attractor-canvas-area{order:2;position:relative;aspect-ratio:auto;height:auto}}.symmetry-attractor-overlay{position:absolute;top:1rem;right:1rem;pointer-events:none;font-size:.75rem;color:#64748b;text-align:right;background-color:#00000080;padding:.5rem;border-radius:.25rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.symmetry-attractor-overlay p{margin:0;line-height:1.5}.custom-scrollbar::-webkit-scrollbar{width:8px}.custom-scrollbar::-webkit-scrollbar-track{background:#0f172a80}.custom-scrollbar::-webkit-scrollbar-thumb{background:#334155cc;border-radius:4px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:#475569e6}.download-button-wrapper{position:relative;display:inline-block}.download-button{position:absolute;top:.5rem;right:.5rem;width:3rem;height:3rem;border-radius:4px;background-color:#000;color:#fff;border:none;font-size:2.4rem;cursor:pointer;z-index:100;opacity:.25;transition:opacity .2s ease,transform .2s ease,background-color .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 6px #0000004d;line-height:1;margin:.5rem;padding:0;text-align:center;vertical-align:middle}.download-button:hover{transform:scale(1.1);background-color:#000}.download-button-visible{opacity:1}.fractal-input{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.75rem}.fractal-input-label{font-size:.75rem;color:#94a3b8;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;text-transform:uppercase;letter-spacing:.05em}.fractal-input-field{background-color:#1e293b;border:1px solid #475569;color:#e2e8f0;font-size:.875rem;border-radius:.25rem;padding:.25rem .5rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;transition:border-color .2s}.fractal-input-field:focus{outline:none;border-color:#06b6d4}.fractal-control-panel{width:100%;background-color:#0f172a;border-right:1px solid #1e293b;display:flex;flex-direction:column;height:100%;overflow-y:auto}@media(min-width:768px){.fractal-control-panel{width:20rem}}.fractal-control-header{padding:1rem;border-bottom:1px solid #1e293b}.fractal-control-title{font-size:1.25rem;font-weight:700;color:#22d3ee;margin-bottom:.25rem}.fractal-control-subtitle{font-size:.75rem;color:#64748b;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.fractal-control-content{padding:1rem;flex:1;display:flex;flex-direction:column;gap:1.5rem}.fractal-status{background-color:#020617;padding:.75rem;border-radius:.25rem;border:1px solid #1e293b;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:.75rem}.fractal-status-row{display:flex;justify-content:space-between;color:#94a3b8}.fractal-status-row:not(:first-child){margin-top:.25rem}.fractal-status-value{color:#fff}.fractal-status-symmetry{color:#fbbf24}.fractal-status-warning{margin-top:.5rem;color:#f87171;border-top:1px solid #1e293b;padding-top:.25rem}.fractal-control-section{display:flex;flex-direction:column;gap:.75rem}.fractal-section-title{font-size:.875rem;font-weight:600;color:#cbd5e1;border-bottom:1px solid #475569;padding-bottom:.25rem}.fractal-symmetry-toggle{display:flex;align-items:center;justify-content:space-between;background-color:#1e293b;padding:.5rem;border-radius:.25rem;border:1px solid #475569}.fractal-symmetry-label{font-size:.75rem;color:#94a3b8;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;text-transform:uppercase}.fractal-symmetry-button{padding:.25rem .75rem;font-size:.75rem;border-radius:.25rem;font-weight:700;transition:background-color .2s;cursor:pointer;border:none;color:#fff}.fractal-symmetry-button-dn{background-color:#9333ea}.fractal-symmetry-button-dn:hover{background-color:#a855f7}.fractal-symmetry-button-zn{background-color:#2563eb}.fractal-symmetry-button-zn:hover{background-color:#3b82f6}.fractal-coefficients-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.fractal-actions{padding-top:1rem;display:flex;flex-direction:column;gap:.5rem}.fractal-button{width:100%;padding:.5rem;border-radius:.25rem;font-size:.875rem;font-weight:600;transition:background-color .2s;cursor:pointer;border:1px solid}.fractal-button-clear{background-color:#475569;color:#fff;border-color:#475569}.fractal-button-clear:hover{background-color:#475569}.fractal-button-reset{background-color:#7f1d1d80;color:#fca5a5;border-color:#7f1d1d}.fractal-button-reset:hover{background-color:#7f1d1dcc}.fractal-button-save{background-color:#022c2280;color:#34d399;border-color:#022c22}.fractal-button-save:hover{background-color:#022c22cc}.fractal-button-load{background-color:#1e293b;color:#94a3b8;border-color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center}.fractal-button-load:hover{background-color:#475569;color:#fff}.fractal-file-input{display:none}.fractal-render-mode-toggle{display:flex;gap:.25rem;border-radius:.25rem;padding:.25rem;border:1px solid #475569;background-color:#1e293b}.fractal-render-mode-button{flex:1;padding:.375rem;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:.25rem;transition:background-color .2s,color .2s;cursor:pointer;background:none;border:none;color:#64748b}.fractal-render-mode-button:hover{color:#cbd5e1}.fractal-render-mode-button-active{background-color:#475569;color:#22d3ee;box-shadow:0 1px 2px #0000000d}.fractal-histogram-colors{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.fractal-color-setting-row{display:flex;align-items:center;justify-content:space-between}.fractal-color-label{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase}.fractal-color-input{height:1.5rem;width:3rem;background-color:transparent;border:none;cursor:pointer;border-radius:.25rem}.fractal-presets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.fractal-clear-on-load-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer}.fractal-checkbox{width:1rem;height:1rem;cursor:pointer;accent-color:#22d3ee}.fractal-checkbox-label{font-size:.75rem;color:#94a3b8;-webkit-user-select:none;user-select:none}.fractal-presets-list{display:flex;flex-direction:column;gap:.5rem;max-height:12rem;overflow-y:auto;padding-right:.25rem}.fractal-preset-item{background-color:#0f172a;padding:.75rem;border-radius:.25rem;border:1px solid #1e293b;cursor:pointer;text-align:left;transition:background-color .2s,border-color .2s;width:100%}.fractal-preset-item:hover{background-color:#1e293b;border-color:#22d3ee}.fractal-preset-name{font-size:.875rem;font-weight:600;color:#cbd5e1;margin-bottom:.25rem}.fractal-preset-figure{font-size:.75rem;color:#64748b;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;margin-bottom:.125rem}.fractal-preset-info{font-size:.75rem;color:#fbbf24;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace}.fractal-canvas-container{flex:1;position:relative;background-color:#000;overflow:hidden;cursor:crosshair}.fractal-canvas{display:block;position:absolute;top:0;left:0}.symmetric-fractal-container{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background-color:#0f172a;color:#f1f5f9;font-family:ui-sans-serif,system-ui,sans-serif}@media(min-width:768px){.symmetric-fractal-container{flex-direction:row}}.square-quilt-canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}.square-quilt-control-panel{background-color:#1e293b80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-left:1px solid #475569;padding:1.5rem;height:100%;overflow-y:auto;width:100%;display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000040;z-index:10}@media(min-width:768px){.square-quilt-control-panel{width:20rem}}.square-quilt-control-header{margin-bottom:1.5rem}.square-quilt-control-title{font-size:1.25rem;font-weight:700;color:#fff;margin:0 0 .25rem}.square-quilt-control-subtitle{font-size:.75rem;color:#64748b;margin:0}.square-quilt-presets-section{margin-bottom:1.5rem}.square-quilt-presets-title{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase;margin-bottom:.75rem;letter-spacing:.05em}.square-quilt-presets-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.square-quilt-preset-button{padding:.5rem .75rem;font-size:.75rem;font-weight:500;color:#cbd5e1;background-color:#475569;border:none;border-radius:.25rem;transition:background-color .2s,color .2s;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.square-quilt-preset-button:hover{background-color:#0ea5e9;color:#fff}.square-quilt-controls-scroll{flex:1;overflow-y:auto;min-height:0}.square-quilt-controls-content{display:flex;flex-direction:column;gap:.5rem}.square-quilt-slider{margin-bottom:1rem}.square-quilt-slider-header{display:flex;justify-content:space-between;margin-bottom:.25rem}.square-quilt-slider-label{font-size:.75rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.square-quilt-slider-value{font-size:.75rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;color:#38bdf8}.square-quilt-slider-input{width:100%;height:.5rem;background-color:#475569;border-radius:.5rem;appearance:none;cursor:pointer;transition:accent-color .2s}.square-quilt-slider-input::-webkit-slider-thumb{appearance:none;width:1rem;height:1rem;border-radius:50%;background-color:#0ea5e9;cursor:pointer;transition:background-color .2s}.square-quilt-slider-input::-webkit-slider-thumb:hover{background-color:#38bdf8}.square-quilt-slider-input::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background-color:#0ea5e9;cursor:pointer;border:none;transition:background-color .2s}.square-quilt-slider-input::-moz-range-thumb:hover{background-color:#38bdf8}.square-quilt-settings-section{margin-top:1rem;padding-top:1rem;border-top:1px solid #475569}.square-quilt-settings-title{font-size:.75rem;font-weight:700;color:#cbd5e1;text-transform:uppercase;margin-bottom:.75rem;letter-spacing:.05em}.square-quilt-shift-control{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.square-quilt-shift-label{font-size:.75rem;font-weight:500;color:#94a3b8;text-transform:uppercase}.square-quilt-shift-button{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;border:1px solid #475569;background-color:#475569;color:#94a3b8;transition:background-color .2s,border-color .2s,color .2s;cursor:pointer}.square-quilt-shift-button:hover{background-color:#64748b}.square-quilt-shift-button-active{background-color:#0ea5e933;border-color:#0ea5e9;color:#38bdf8}.square-quilt-color-control{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.square-quilt-color-label{font-size:.75rem;font-weight:500;color:#94a3b8;text-transform:uppercase}.square-quilt-color-input{height:1.5rem;width:3rem;background-color:transparent;border:none;cursor:pointer;border-radius:.25rem}.square-quilt-actions{margin-top:1.5rem;display:flex;flex-direction:column;gap:.75rem}.square-quilt-action-button{width:100%;padding:.75rem;border-radius:.5rem;font-weight:700;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;transition:all .2s;cursor:pointer;border:none;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.square-quilt-action-button-toggle{padding:.75rem}.square-quilt-action-button-start{background-color:#10b981;color:#fff}.square-quilt-action-button-start:hover{background-color:#059669;box-shadow:0 10px 15px -3px #10b98133,0 4px 6px -2px #10b9811a}.square-quilt-action-button-pause{background-color:#f59e0b1a;color:#f59e0b;border:1px solid rgba(245,158,11,.5)}.square-quilt-action-button-pause:hover{background-color:#f59e0b33}.square-quilt-action-buttons-row{display:flex;gap:.75rem}.square-quilt-action-button-secondary{flex:1;padding:.5rem;background-color:#475569;color:#fff;font-weight:600;font-size:.75rem;box-shadow:none}.square-quilt-action-button-secondary:hover{background-color:#64748b}.square-quilt-container{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;background-color:#0f172a}@media(min-width:768px){.square-quilt-container{flex-direction:row}}.square-quilt-canvas-area{position:relative;flex:1;height:60vh;order:1}@media(min-width:768px){.square-quilt-canvas-area{height:auto}}.square-quilt-canvas-wrapper{position:absolute;inset:0}.square-quilt-overlay{position:absolute;top:1rem;left:1rem;pointer-events:none;z-index:10}.square-quilt-overlay-title{font-size:1.5rem;font-weight:700;color:#fff;letter-spacing:-.02em;margin:0 0 .25rem;text-shadow:0 2px 4px rgba(0,0,0,.3);opacity:.8}.square-quilt-overlay-subtitle{font-size:.75rem;color:#94a3b8;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;margin:0;opacity:.7}.square-quilt-sidebar{order:2;height:40vh;width:100%}@media(min-width:768px){.square-quilt-sidebar{height:auto;width:20rem;flex-shrink:0}}
