@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Plus+Jakarta+Sans:wght@500;700&family=JetBrains+Mono:wght@400;500&display=swap";.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:flex-end;align-items:center;padding:0 var(--space-4);width:100%}.header .spacer{flex:1}.auth-section,.user-container{position:relative}.user-email,.sign-in-text{font-size:var(--text-xs);color:var(--text-primary);cursor:pointer;font-family:var(--font-mono)}.auth-loading{font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-mono)}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:var(--space-1);background-color:var(--surface);border:1px solid var(--border);border-radius:0;box-shadow:none;min-width:120px;z-index:10}.dropdown-item{width:100%;text-align:right;padding:var(--space-2) var(--space-3);background:none;border:none;font-size:var(--text-xs);color:var(--text-primary);cursor:pointer;font-family:var(--font-mono)}.dropdown-item:hover{background-color:var(--surface-light)}.auth-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.auth-modal{background-color:var(--surface);border-radius:0;width:90%;max-width:400px;padding:var(--space-6);box-shadow:var(--shadow-lg);font-family:var(--font-mono)}.auth-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.auth-modal-header h2{font-family:var(--font-mono);font-size:var(--text-xl);font-weight:500;margin:0}.close-button{background:none;border:none;cursor:pointer;color:var(--text-secondary);font-family:var(--font-mono)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--text-xs);font-weight:500;color:var(--text-primary);font-family:var(--font-mono)}.form-group input{padding:var(--space-3) 0;border:none;border-bottom:1px solid var(--border);border-radius:0;font-size:var(--text-md);color:var(--text-primary);font-family:var(--font-mono)}.form-group input:focus{outline:none;border-color:var(--primary)}.auth-error{background-color:#e53e3e1a;border-left:3px solid var(--error);padding:var(--space-3);color:var(--error);font-size:var(--text-sm);margin-bottom:var(--space-2);font-family:var(--font-mono)}.auth-actions{margin-top:var(--space-4)}.auth-submit-button{width:100%;padding:var(--space-3);color:#44443d;border:none;border-radius:0;font-size:var(--text-md);font-weight:500;cursor:pointer;font-family:var(--font-mono);background:repeating-linear-gradient(135deg,#ffb3bae6 0,#ffb3bae6 10%,#ffdfbae6 10%,#ffdfbae6 20%,#ffffbae6 20%,#ffffbae6 30%,#baffc9e6 30%,#baffc9e6 40%,#bae1ffe6 40%,#bae1ffe6 50%,#d1c4e9e6 50%,#d1c4e9e6 60%,#e1bee7e6 60%,#e1bee7e6 70%)}.auth-submit-button:hover{opacity:.9}.auth-submit-button:disabled{background:var(--border);cursor:not-allowed;text-shadow:none;color:var(--text-secondary)}.auth-toggle{margin-top:var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--text-secondary);font-family:var(--font-mono)}.text-button{background:none;border:none;color:var(--primary);font-weight:500;cursor:pointer;padding:0;font-family:var(--font-mono)}.text-button:hover{text-decoration:underline}.limit-reached-message{background-color:var(--primary-light);padding:var(--space-4);border-radius:0;margin-bottom:var(--space-4);text-align:center;font-family:var(--font-mono)}.limit-reached-message p{margin-bottom:var(--space-2);color:var(--primary);font-weight:500;font-family:var(--font-mono)}.limit-reached-message p:last-child{margin-bottom:0}@keyframes react-loading-skeleton{to{transform:translate(100%)}}.react-loading-skeleton{--base-color: #ebebeb;--highlight-color: #f5f5f5;--animation-duration: 1.5s;--animation-direction: normal;--pseudo-element-display: block;background-color:var(--base-color);width:100%;border-radius:.25rem;display:inline-flex;line-height:1;position:relative;-webkit-user-select:none;user-select:none;overflow:hidden}.react-loading-skeleton:after{content:" ";display:var(--pseudo-element-display);position:absolute;top:0;left:0;right:0;height:100%;background-repeat:no-repeat;background-image:var( --custom-highlight-background, linear-gradient( 90deg, var(--base-color) 0%, var(--highlight-color) 50%, var(--base-color) 100% ) );transform:translate(-100%);animation-name:react-loading-skeleton;animation-direction:var(--animation-direction);animation-duration:var(--animation-duration);animation-timing-function:ease-in-out;animation-iteration-count:infinite}@media (prefers-reduced-motion){.react-loading-skeleton{--pseudo-element-display: none}}.loading-more-indicator{display:flex;align-items:center;justify-content:center;gap:12px;padding:24px;color:var(--text-secondary);font-size:.875rem}.loading-spinner{width:20px;height:20px;border:2px solid var(--border);border-top:2px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite}.loading-text{text-align:center}.loading-prefix{font-size:12px;font-weight:300;color:var(--text-secondary);margin:0 0 4px;font-family:var(--font-mono);opacity:.7}.loading-canvas-name{font-size:14px;font-weight:500;color:var(--text-secondary);margin:0;font-family:var(--font-mono)}.prompt-input-container{position:relative;z-index:90;margin-bottom:var(--space-3);padding:0}.prompt-form{display:flex;flex-direction:column;gap:var(--space-4)}.prompt-input{width:100%;border-radius:4px;border:none;font-size:var(--text-sm);color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;resize:none;line-height:1.5;overflow:hidden;box-sizing:border-box;padding:0}@media (max-width: 900px){.prompt-input{line-height:1.6!important;padding:0!important;margin:0!important;border:0!important;font-size:12px!important;min-height:0!important;vertical-align:top!important}.prompt-input::-webkit-scrollbar{display:none}}.prompt-input:focus{outline:none}.prompt-input::placeholder{color:var(--text-secondary);opacity:.7}.button-content{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%}.shortcut-indicator{display:flex;align-items:center;justify-content:center;margin-left:8px;font-size:var(--text-xs);color:var(--text-secondary);opacity:.8}.prompt-error{margin-top:var(--space-2);padding:var(--space-2);background-color:#e53e3e1a;border-left:3px solid var(--error);color:var(--error);font-size:var(--text-sm)}.free-image-counter{margin-top:0;text-align:center;font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-mono);margin-bottom:0;-webkit-text-size-adjust:none;text-size-adjust:none}.prompt-signup-button{font-family:var(--font-mono);display:flex;color:var(--text-secondary);font-size:var(--text-xs);align-items:center;justify-content:center;padding:var(--space-4);border-radius:0;border:1px solid var(--border);background:none;cursor:pointer;transition:all .2s ease;width:100%}.prompt-signup-button:hover{color:var(--primary);border-color:var(--primary);background-color:var(--surface)}.settings-container{margin-top:var(--space-6);width:100%;transition:all .3s ease}@media (max-width: 900px){.settings-container.mobile-visible{margin-top:0}}.settings-button{font-family:var(--font-mono);background:none;border:none;cursor:pointer;padding:var(--space-2);margin-top:var(--space-4);color:var(--text-secondary);font-size:var(--text-xs);width:100%;text-align:center}.settings-toggle{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.settings-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:var(--space-2);border-radius:4px;transition:background-color .2s ease}.settings-label:hover{background-color:#00000005}.settings-label.selected{background-color:#0000000d}.upscale-label{color:var(--text-secondary);font-weight:400;transition:all .2s ease}.upscale-label.active{color:var(--accent);font-weight:500}.generating-state{display:flex;align-items:center;gap:8px;color:var(--accent)}.generating-text{font-size:var(--text-sm);font-weight:500}.settings-button-content{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.settings-panel{margin-top:var(--space-2);padding:var(--space-4);border:1px solid var(--border);border-radius:0;background-color:transparent;font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-secondary)}@media (max-width: 900px){.settings-container.mobile-visible .settings-panel{margin-top:0}}.settings-columns{display:flex;gap:var(--space-6)}.settings-column{flex:1}.settings-panel h4{margin-bottom:var(--space-3);color:var(--text-secondary);font-weight:400}.orientation-toggle,.aspect-ratio-toggle,.upscale-toggle{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-4)}.settings-radio-label,.settings-checkbox-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;padding:4px 0;background-color:transparent}.settings-label-text{color:inherit;text-decoration:none}.settings-label-text.selected{color:var(--text-primary);text-decoration:underline}.settings-radio-label input[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border:1px solid var(--text-secondary);border-radius:50%;background-color:transparent;cursor:pointer;position:relative;margin:0}.settings-radio-label input[type=radio]:checked{border-color:var(--text-secondary);background-color:var(--text-secondary)}.settings-radio-label input[type=radio]:hover:not(:checked){border-color:var(--text-primary)}.settings-checkbox-label input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border:1px solid var(--text-secondary);border-radius:0;background-color:transparent;cursor:pointer;position:relative;margin:0}.settings-checkbox-label input[type=checkbox]:checked{border-color:var(--text-secondary);background-color:var(--text-secondary)}.checkbox-container{position:relative;display:inline-block}.checkbox-icon{position:absolute;top:2px;left:1px;color:#fff;pointer-events:none}.settings-checkbox-label input[type=checkbox]:hover{border-color:var(--text-primary)}.sparkle-emoji{text-decoration:none}.keyboard-shortcut{font-size:.7rem;color:var(--text-secondary);font-weight:400;margin-left:4px;opacity:.7}.settings-toggle-container{display:none;justify-content:center;margin-top:0;width:100%}.settings-toggle-button{font-family:var(--font-mono);background:none;border:none;cursor:pointer;padding:var(--space-2) var(--space-4);color:var(--text-secondary);font-size:var(--text-xs);display:flex;align-items:center;gap:var(--space-1);transition:all .2s ease}.settings-toggle-button:hover{color:var(--text-primary)}.chevron-icon{transition:transform .2s ease}.chevron-icon.open{transform:rotate(90deg)}@media (max-width: 900px){.settings-container{display:none}.settings-toggle-container{display:flex}.settings-container.mobile-visible{display:block}}@media (min-width: 901px){.settings-container{display:block!important}.settings-toggle-container{display:none}}:root{--background: #ffffff;--surface: #ffffff;--surface-light: #fafafa;--primary: #8a56fc;--primary-light: rgba(138, 86, 252, .1);--accent: #e94c89;--text-primary: #2d3748;--text-secondary: #718096;--border: #f0f0f0;--success: #38a169;--error: #e53e3e;--font-main: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-display: "Plus Jakarta Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--image-spacing-x: var(--space-4);--image-spacing-y: var(--space-6);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:var(--font-main);background-color:var(--background);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{min-height:100vh;display:grid;grid-template-rows:auto auto 1fr;max-width:100%}.two-column-layout{display:grid;grid-template-columns:1fr 2fr;max-width:1400px;margin:0 auto;width:100%;padding:0}.left-column{padding:0 var(--space-8) 0 var(--space-4);width:100%}.right-column{padding:0 var(--space-4) 0 var(--space-8);width:100%}.sticky-element{position:sticky;top:70px;z-index:90;margin-bottom:var(--space-8)}.relative-element{position:relative;z-index:90;margin-bottom:var(--space-4)}.header{position:sticky;top:0;z-index:100;padding:var(--space-3) 0;background-color:#fffffff2}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:0 var(--space-4);width:100%}.logo{display:flex;align-items:center;gap:var(--space-2)}.logo h1{font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);letter-spacing:-.03em;color:var(--text-primary)}.header-actions{display:flex;align-items:center;gap:var(--space-4)}.filter-controls-container{width:100%;background-color:var(--surface);border-bottom:1px solid var(--border);margin-bottom:var(--space-12)}@media (max-width: 900px){.filter-controls-container{margin-bottom:var(--space-6)}}.filter-controls{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4)}.filter-actions{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.animated-filter-menu-container{position:relative;display:flex;align-items:center}.animated-filter-menu-container .filter-button.hidden{opacity:0;transform:scale(0);pointer-events:none;transition:all .2s ease}.filter-actions-expanded{display:flex;gap:0px;position:absolute;top:50%;transform:translateY(-50%)}.filter-actions-expanded.animating .filter-icon{animation:filterFanOut .3s ease-out forwards}.filter-icon{color:var(--text-secondary);transition:all .2s ease;border-radius:4px;padding:1px;min-width:20px;min-height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;opacity:0;transform:scale(0) translate(0)}@keyframes filterFanOut{0%{opacity:0;transform:scale(0) translate(0) rotate(0)}50%{opacity:.7;transform:scale(.8) translate(var(--fan-distance)) rotate(var(--fan-rotation))}to{opacity:1;transform:scale(1) translate(var(--fan-distance)) rotate(0)}}.favorites-filter{--fan-distance: -14px;--fan-rotation: 12deg;animation-delay:.05s}.hidden-filter{--fan-distance: -28px;--fan-rotation: -8deg;animation-delay:.1s}.filter-icon:hover{color:var(--text-primary);background-color:var(--surface);transform:scale(1.1) translate(var(--fan-distance))}.filter-actions-expanded:not(.animating) .filter-icon{opacity:1;transform:scale(1) translate(var(--fan-distance))}.filter-button{padding-right:0!important}.canvas-dropdown-container{position:relative}.canvas-dropdown-button{display:flex;align-items:center;gap:var(--space-2);background-color:transparent;color:var(--text-primary);border:none;border-radius:4px;font-size:var(--text-sm);font-family:var(--font-mono);font-weight:500;cursor:pointer;transition:all .2s ease}.canvas-dropdown-button:hover{background-color:transparent}.canvas-dropdown-button.menu-open span:first-child{text-decoration:underline}.canvas-dropdown-menu{position:absolute;top:100%;left:0;margin-top:var(--space-1);background-color:var(--surface);border-radius:4px;box-shadow:var(--shadow-md);z-index:110;min-width:250px;max-height:400px;overflow-y:auto}.keyboard-shortcut{font-weight:500;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);background-color:#f5f5f5;padding:1px 4px;border-radius:3px;margin-right:var(--space-2)}.chevron-down{transition:transform .2s ease}.chevron-up{transform:rotate(180deg);transition:transform .2s ease}.nav-links{display:flex;gap:var(--space-6)}.nav-link{color:var(--text-secondary);text-decoration:none;font-size:var(--text-sm);font-weight:500}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.icon-only-button{background:none;border:none;padding:var(--space-2);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.7;transition:all .2s ease}.icon-only-button:hover{opacity:1;transform:scale(1.1)}.icon-only-button .active{opacity:1;color:var(--accent)}.icon-only-button svg{color:var(--text-secondary);transition:all .2s ease}.icon-only-button svg.active{color:var(--accent)}.hidden-filter svg.active{color:var(--accent);animation:pulse .3s ease-in-out}.submit-button{font-family:var(--font-mono);display:flex;color:#44443d;font-size:var(--text-xs);align-items:center;justify-content:center;padding:var(--space-4);border-radius:0;border:none;background:repeating-linear-gradient(135deg,#ffb3bae6 0,#ffb3bae6 10%,#ffdfbae6 10%,#ffdfbae6 20%,#ffffbae6 20%,#ffffbae6 30%,#baffc9e6 30%,#baffc9e6 40%,#bae1ffe6 40%,#bae1ffe6 50%,#d1c4e9e6 50%,#d1c4e9e6 60%,#e1bee7e6 60%,#e1bee7e6 70%);cursor:pointer;width:100%}.submit-button:disabled{background:var(--border);cursor:not-allowed;text-shadow:none;color:var(--text-secondary)}.button-container{display:flex;justify-content:center;margin-top:var(--space-4);width:100%}@media (max-width: 900px){.button-container{margin-top:0}}.heart-filled{animation:pulse .3s ease-in-out}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-icon{animation:spin 1s linear infinite}.feed-container{width:100%}.canvas-container{overflow-y:auto;max-height:calc(100vh - 180px);padding-left:0;padding-top:0}.section-title{margin-bottom:var(--space-6);font-family:var(--font-display);font-size:var(--text-xl);font-weight:500}.tips-container{margin-top:var(--space-8);padding:var(--space-4);background-color:var(--surface-light);border-radius:4px;font-size:var(--text-sm);color:var(--text-secondary)}.tips-title{margin-bottom:var(--space-2);font-size:var(--text-md);color:var(--text-primary)}.tips-list{padding-left:var(--space-4)}.tips-item{margin-bottom:var(--space-2)}.loading-skeleton{padding:var(--space-8) 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) 0;text-align:center;color:var(--text-secondary)}.empty-state-icon{margin-bottom:var(--space-8);width:48px;height:48px;opacity:.3}.empty-state-icon svg{width:48px;height:48px;color:var(--text-secondary)}.empty-state h3{font-size:var(--text-lg);margin-bottom:var(--space-4);font-weight:500;font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.02em}.empty-state p{font-size:var(--text-md);max-width:300px;margin:0 auto;line-height:1.6}@media (max-width: 900px){:root{--image-spacing-x: var(--space-3);--image-spacing-y: var(--space-4)}.two-column-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.left-column,.right-column{padding:0 var(--space-4)}.content-column{padding:0 var(--space-2)}.header{padding:var(--space-2) var(--space-2)}.prompt-input-container{border-radius:8px}}@media (max-width: 600px){:root{--image-spacing-x: var(--space-2);--image-spacing-y: var(--space-3)}}.public-viewing-notice{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:var(--space-8);text-align:center;box-shadow:var(--shadow-sm);margin-bottom:var(--space-6)}.public-viewing-notice h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--text-primary);margin:0 0 var(--space-4);letter-spacing:-.02em}.public-viewing-notice p{color:var(--text-secondary);font-size:var(--text-md);margin:0 0 var(--space-6);line-height:1.6}.public-viewing-notice .auth-button{background:var(--primary);color:#fff;border:none;border-radius:8px;padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .2s ease}.public-viewing-notice .auth-button:hover{background:var(--accent);transform:translateY(-1px);box-shadow:var(--shadow-md)}.font-mono{font-family:var(--font-mono)}.favorite-heart{transition:all .2s ease}.favorite-heart.filled{fill:var(--accent);color:var(--accent)}.favorite-heart.empty{fill:none;color:var(--text-secondary)}.overlay-shimmer{position:absolute;top:0;left:0;right:0;bottom:0;z-index:1}.image-error{width:100%;height:200px;display:flex;align-items:center;justify-content:center;background:var(--surface-light);color:var(--text-secondary);border:1px dashed var(--border);border-radius:4px}.image-responsive{width:100%;height:auto;display:block}.back-to-top-button{position:fixed;bottom:2rem;right:2rem;width:48px;height:48px;background:var(--surface);border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-lg);z-index:1100;transition:all .3s ease;color:var(--text-secondary)}.back-to-top-button:hover{background:var(--primary);color:#fff;transform:translateY(-2px);box-shadow:0 12px 20px -3px #8a56fc4d}.back-to-top-button:active{transform:translateY(0)}@media (max-width: 600px){.back-to-top-button{bottom:1rem;right:1rem;width:44px;height:44px}}.canvas-selector-container{margin-top:var(--space-8);margin-bottom:var(--space-8)}.canvas-selector{background-color:transparent;border-radius:4px;padding:var(--space-4);width:100%}.canvas-selector-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--border)}.canvas-selector-header h3{font-family:var(--font-mono);font-size:var(--text-md);font-weight:500;margin:0;color:var(--text-primary)}.canvas-list{display:flex;flex-direction:column;gap:var(--space-2)}.canvas-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);border-radius:4px;cursor:pointer;transition:color .2s ease;background-color:transparent;border:none}.canvas-item:hover{color:var(--text-primary);background-color:transparent}.canvas-item.selected{background-color:transparent}.canvas-item.selected .canvas-name{color:var(--text-primary)!important;text-decoration:underline}.canvas-name{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:2px;opacity:1!important;display:block!important}.canvas-item:hover .canvas-name{color:var(--text-primary)}.canvas-actions{display:flex;gap:var(--space-1);opacity:.7}.canvas-item:hover .canvas-actions{opacity:1}.canvas-item-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity .2s ease}.canvas-item:hover .canvas-item-actions{opacity:1}.share-button{color:var(--text-secondary);transition:color .2s ease}.share-button:hover{color:var(--primary)}.copied-indicator{font-size:var(--text-xs);color:var(--success);font-family:var(--font-mono);animation:fadeIn .3s ease-out}.new-canvas-text{font-weight:500;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary)}.canvas-create-form{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);align-items:center}.canvas-edit-form{display:flex;gap:var(--space-2);align-items:center;width:100%}.canvas-name-input{flex:1;padding:var(--space-2);border:none;border-bottom:1px solid var(--border);border-radius:0;font-family:var(--font-mono);font-size:var(--text-sm);background-color:transparent;color:var(--text-primary)}.canvas-name-input:focus{outline:none;border-bottom-color:var(--text-primary)}.canvas-name-input-inline{border:none;border-radius:0;background-color:transparent;outline:none;font-style:italic}.canvas-name-input-inline::placeholder{color:var(--text-secondary);font-style:italic;opacity:.7}.canvas-item .canvas-actions .icon-only-button[title="Save new canvas"],.canvas-item .canvas-actions .icon-only-button[title="Save changes"]{padding-right:4px}.canvas-item .canvas-actions .icon-only-button[title="Save new canvas"],.canvas-item .canvas-actions .icon-only-button[title="Save new canvas"] svg,.canvas-item .canvas-actions .icon-only-button[title="Save changes"],.canvas-item .canvas-actions .icon-only-button[title="Save changes"] svg{color:#16a34a}.canvas-item .canvas-actions .icon-only-button[title="Save new canvas"]:hover,.canvas-item .canvas-actions .icon-only-button[title="Save new canvas"]:hover svg,.canvas-item .canvas-actions .icon-only-button[title="Save changes"]:hover,.canvas-item .canvas-actions .icon-only-button[title="Save changes"]:hover svg{color:#22c55e}.canvas-item .canvas-actions .icon-only-button[title="Save new canvas"] svg,.canvas-item .canvas-actions .icon-only-button[title="Save changes"] svg,.canvas-item .canvas-actions .icon-only-button[title=Cancel] svg{stroke-width:2.5}.canvas-item .canvas-actions .icon-only-button,.canvas-edit-form .canvas-actions .icon-only-button,.canvas-create-form .canvas-actions .icon-only-button{padding:2px}.canvas-action-buttons{display:flex;gap:var(--space-1)}.canvas-loading,.canvas-empty{padding:var(--space-4);text-align:center;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-sm)}.canvas-dropdown-menu .canvas-selector{border-radius:0;box-shadow:none;background-color:transparent}.canvas-dropdown-menu .canvas-list{max-height:300px;overflow-y:auto}.canvas-dropdown-menu .canvas-item{padding:var(--space-2) var(--space-3)}.canvas-dropdown-menu .canvas-selector-header{padding-top:var(--space-2)}.canvas-list-view{background-color:var(--surface);width:100%;max-height:calc(100vh - 150px);display:flex;flex-direction:column;animation:rollOut .4s ease-out forwards;transform-origin:top center;overflow:visible;margin-top:calc(-1 * var(--space-12));border-left:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding-bottom:var(--space-4)}.canvas-list-view:focus{outline:none}@keyframes rollOut{0%{transform:scaleY(0);opacity:0;max-height:0}70%{transform:scaleY(1.05);opacity:1;max-height:1000px}to{transform:scaleY(1);opacity:1;max-height:1000px}}.canvas-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.canvas-list-title{display:flex;align-items:center;gap:var(--space-3)}.canvas-list-title h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;margin:0;color:var(--text-primary)}.close-button{color:var(--text-secondary);transition:color .2s ease}.close-button:hover{color:var(--text-primary)}.canvas-list-expanded{display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto;flex:1;min-height:0;padding:0 var(--space-4);opacity:1!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.canvas-list-expanded .canvas-item{padding:0;border-radius:0;border:none;background-color:transparent}.canvas-list-expanded .canvas-name{font-size:var(--text-sm)}.canvas-list-expanded .canvas-item.selected .canvas-name,.canvas-item.selected:hover .canvas-name{color:var(--text-primary)!important;text-decoration:underline}.new-canvas-button{display:flex;align-items:center;background:none;color:var(--text-secondary);border:none;font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer;transition:color .2s ease;padding:0}.new-canvas-button:hover{color:var(--text-primary)}.canvas-item.new-canvas-item{margin-bottom:var(--space-4)}.canvas-list-expanded .canvas-item{opacity:1!important;transform:translateY(0)!important}.canvas-list-expanded .canvas-item:nth-child(1){animation-delay:.05s}.canvas-list-expanded .canvas-item:nth-child(2){animation-delay:.1s}.canvas-list-expanded .canvas-item:nth-child(3){animation-delay:.15s}.canvas-list-expanded .canvas-item:nth-child(4){animation-delay:.2s}.canvas-list-expanded .canvas-item:nth-child(5){animation-delay:.25s}.canvas-list-expanded .canvas-item:nth-child(6){animation-delay:.3s}.canvas-list-expanded .canvas-item:nth-child(7){animation-delay:.35s}.canvas-list-expanded .canvas-item:nth-child(8){animation-delay:.4s}.canvas-list-expanded .canvas-item:nth-child(9){animation-delay:.45s}.canvas-list-expanded .canvas-item:nth-child(10){animation-delay:.5s}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.etch-keyboard-shortcuts-background{margin:0 calc(-1 * var(--space-4)) var(--space-3) calc(-1 * var(--space-4))!important;padding:var(--space-3) var(--space-4);background-color:transparent;border-radius:0!important;border-bottom:1px solid var(--border)}.etch-keyboard-shortcuts-container{display:flex;flex-direction:column;padding:0;margin:0;width:100%}.etch-shortcuts-row{display:flex!important;justify-content:space-between!important;width:100%!important}.etch-shortcuts-column{display:flex!important;flex-direction:column!important;gap:var(--space-1)!important;flex:1!important}.etch-shortcut-item{display:flex!important;align-items:center!important;gap:var(--space-1)!important;margin-bottom:0!important}.etch-shortcut-description{font-family:var(--font-mono)!important;font-size:.7rem!important;color:var(--text-secondary)!important}.etch-keyboard-shortcuts-container .keyboard-shortcut{font-size:.7rem;padding:0 3px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;background-color:#f5f5f5;border-radius:3px}.archived-canvases-section{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.archived-section-header{display:flex;align-items:center;cursor:pointer;padding:0;border-radius:4px;transition:background-color .2s ease;margin-bottom:var(--space-2)}.archived-section-header:hover{background-color:var(--surface)}.archived-section-title{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);font-weight:500}.archived-canvases-list{display:flex;flex-direction:column;gap:.125rem;padding-left:0}.archived-canvas-item{opacity:.6;transition:opacity .2s ease}.archived-canvas-item:hover{opacity:.8}.archived-canvas-name{pointer-events:none;font-size:var(--text-xs)!important;color:var(--text-secondary)!important;font-weight:300!important;font-style:italic!important}.archived-canvas-item .canvas-actions{opacity:.5}.archived-canvas-item:hover .canvas-actions{opacity:1}.archived-canvas-item .icon-only-button{padding:2px!important;stroke-width:2!important}.canvas-menu-container{position:relative;display:flex;align-items:center}.three-dot-button{color:var(--text-secondary);transition:color .2s ease;border-radius:4px;padding:4px}.three-dot-button:hover{color:var(--text-primary);background-color:var(--surface)}.canvas-menu-expanded{position:absolute;right:0;top:100%;z-index:1000;background-color:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #00000026;display:flex;gap:var(--space-1);padding:var(--space-2);margin-top:4px;animation:menuSlideIn .15s ease-out forwards;transform-origin:top right}@keyframes menuSlideIn{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.canvas-menu-expanded .icon-only-button{color:var(--text-secondary);transition:all .2s ease;border-radius:4px;padding:2px;min-width:20px;min-height:20px;display:flex;align-items:center;justify-content:center}.canvas-menu-expanded .icon-only-button:hover{color:var(--text-primary);background-color:var(--border);transform:scale(1.05)}.canvas-item{position:relative}.canvas-dropdown-menu .canvas-menu-expanded{right:-8px}.canvas-list-expanded .canvas-menu-expanded{right:0}.animated-canvas-menu-container{position:relative;display:flex;align-items:center}.animated-canvas-menu-container .three-dot-button.hidden{opacity:0;transform:scale(0);pointer-events:none;transition:all .2s ease}.canvas-actions-expanded{display:flex;gap:0px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.canvas-actions-expanded.animating .action-icon{animation:fanOut .3s ease-out forwards}.action-icon{color:var(--text-secondary);transition:all .2s ease;border-radius:4px;padding:2px;min-width:20px;min-height:20px;display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;opacity:0;transform:scale(0) translate(0)}@keyframes fanOut{0%{opacity:0;transform:scale(0) translate(0) rotate(0)}50%{opacity:.7;transform:scale(.8) translate(var(--fan-distance)) rotate(var(--fan-rotation))}to{opacity:1;transform:scale(1) translate(var(--fan-distance)) rotate(0)}}.edit-action{--fan-distance: -16px;--fan-rotation: 15deg;animation-delay:.05s}.share-action{--fan-distance: -8px;--fan-rotation: 5deg;animation-delay:.1s}.archive-action{--fan-distance: 0px;--fan-rotation: -10deg;animation-delay:.15s}.canvas-actions-expanded:not(:has(.share-action)) .edit-action{--fan-distance: -8px;animation-delay:.1s}.action-icon:hover{color:var(--text-primary);background-color:var(--surface);transform:scale(1.1) translate(var(--fan-distance))}.canvas-actions-expanded:not(.animating) .action-icon{opacity:1;transform:scale(1) translate(var(--fan-distance))}.canvas-signup-message{margin-top:var(--space-4);padding:var(--space-3);text-align:center}.canvas-signup-button{font-family:var(--font-mono);display:flex;color:var(--text-secondary);font-size:var(--text-xs);align-items:center;justify-content:center;padding:var(--space-4);border-radius:0;border:1px solid var(--border);background:none;cursor:pointer;transition:all .2s ease;width:100%}.canvas-signup-button:hover{color:var(--primary);border-color:var(--primary);background-color:var(--surface)}@media (max-width: 900px){.canvas-list-view{margin-top:calc(-1 * var(--space-6))}}.image-card{margin-bottom:var(--image-spacing-y);overflow:hidden;background-color:var(--surface);position:relative}.virtualized-item .image-card{margin-bottom:0}.image-container{position:relative;overflow:hidden;width:100%;display:flex;align-items:center;justify-content:flex-start;background-color:var(--surface-light)}.image-container img{width:100%;height:auto;object-fit:contain;display:block}.image-container img.portrait-image{max-width:600px;max-height:1024px;align-self:flex-start}.image-container:has(img.portrait-image){background-color:transparent}.image-card.image-hidden{opacity:.7}.image-container img.hidden-image{filter:blur(5px) grayscale(50%)}.image-actions-vertical{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:var(--space-2);background-color:#fffc;border-radius:4px;padding:var(--space-1);opacity:.7;transition:opacity .2s ease}.image-actions-horizontal{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:var(--space-3);background-color:#ffffffe6;border-radius:6px;padding:var(--space-2);opacity:0;transition:opacity .2s ease;z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.image-container:hover .image-actions-horizontal{opacity:1}@media (max-width: 768px){.image-actions-horizontal{right:5px;top:5px;padding:var(--space-1);gap:var(--space-2)}}.image-caption{padding-top:var(--space-2);font-size:var(--text-sm);line-height:1.2;color:var(--text-primary)}.caption-content{display:flex;flex-direction:column;gap:var(--space-2)}.prompt-with-time{display:flex;flex-wrap:wrap;align-items:baseline;gap:0}.image-prompt-text{font-family:var(--font-mono);font-weight:400;letter-spacing:-.01em;font-size:var(--text-xs);margin:0}.image-date{color:var(--text-secondary);letter-spacing:.02em;font-size:var(--text-xs);font-family:var(--font-mono)}.action-button{background:none;border:none;padding:var(--space-1);cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:opacity .2s ease,transform .2s ease}.action-button:hover{transform:scale(1.1)}.action-button.favorited{color:var(--accent)}.action-button.visibility-off,.action-button.visibility-on{color:var(--text-secondary)}.visibility-toggle-container{display:flex;justify-content:flex-start;margin-bottom:var(--space-4)}.visibility-toggle-button{background:none;border:1px solid var(--border);border-radius:4px;padding:var(--space-2) var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);cursor:pointer;transition:all .2s ease}.visibility-toggle-button:hover{color:var(--text-primary);border-color:var(--text-secondary)}.text-button{background:none;border:none;padding:var(--space-1) var(--space-2);margin-left:var(--space-1);font-family:var(--font-mono);font-size:var(--text-sm);color:var(--primary);cursor:pointer;text-decoration:underline;transition:all .2s ease}.text-button:hover{color:var(--accent)}.image-loading{background-color:var(--surface-light);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.image-loading.portrait-image{max-width:600px;max-height:1024px}.loading-text{position:absolute;z-index:2;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;text-align:center;pointer-events:none;-webkit-user-select:none;user-select:none}.loading-shimmer{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.4) 50%,transparent 100%);animation:shimmer 2s infinite ease-in-out}@keyframes shimmer{0%{left:-100%}to{left:100%}}.prompt-text{margin-bottom:4px;line-height:1.4;word-wrap:break-word}.image-prompt-text,.image-date,.upscale-badge{display:inline}.image-date{font-size:.75rem;color:var(--text-secondary)}.upscale-badge{font-size:.65rem;color:var(--accent);font-weight:500;background-color:#e94c8914;padding:2px 6px;border-radius:4px;font-family:var(--font-mono);box-shadow:0 0 4px #e94c8933}.shimmer{background:linear-gradient(to right,var(--surface) 0%,#f0f0f0 20%,var(--surface) 40%);background-size:200% 100%;animation:shimmer 1.5s infinite linear}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}
