/**
 * @license
 * SPDX-License-Identifier: Apache-2.0
 */:root{--primary-color: #6366f1;--primary-hover: #4f46e5;--primary-glow: rgba(99, 102, 241, .3);--background-color: #0f172a;--sidebar-background: #1e293b;--panel-background: #1e293b;--sidebar-text: #cbd5e1;--sidebar-text-active: #ffffff;--sidebar-active-bg: #334155;--border-color: #334155;--text-color: #e2e8f0;--text-light: #94a3b8;--error-color: #f87171;--success-color: #4ade80;--font-family: "Inter", sans-serif;--border-radius: .5rem;--shadow: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .5)}*{box-sizing:border-box;margin:0;padding:0}*,*:before,*:after{box-sizing:inherit}body{font-family:var(--font-family);background-color:var(--background-color);color:var(--text-color);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--background-color)}::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:var(--sidebar-active-bg)}#root{min-height:100vh}.app-wrapper{display:flex;min-height:100vh}.sidebar-overlay{display:none}.sidebar{width:240px;background-color:var(--sidebar-background);padding:1.5rem 1rem;display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid var(--border-color);transition:transform .3s ease-in-out}.sidebar-header{padding:0 .5rem 1.5rem;display:flex;justify-content:space-between;align-items:center}.sidebar-close-button{display:none}.logo-container{display:flex;align-items:center;text-decoration:none;outline-offset:4px;border-radius:4px}.logo-svg{height:36px;width:auto}.logo-mark{transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.logo-container:hover .logo-mark{transform:translateY(2px) rotate(10deg) scale(1.05)}.logo-text-main{font-size:16px;font-weight:700;fill:#f8fafc;font-family:var(--font-family)}.logo-text-sub{font-size:10px;font-weight:500;fill:var(--text-light);letter-spacing:.5px;font-family:var(--font-family);text-transform:uppercase}.sidebar nav{flex-grow:1}.menu-list{list-style:none}.menu-item a{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--border-radius);text-decoration:none;color:var(--sidebar-text);transition:background-color .2s,color .2s,transform .2s;font-weight:500;position:relative}.menu-item a:hover{background-color:var(--sidebar-active-bg);color:var(--sidebar-text-active);transform:translate(4px)}.menu-item.active a{background-color:var(--sidebar-active-bg);color:var(--sidebar-text-active);font-weight:600}.menu-item.active a:before{content:"";position:absolute;left:-1rem;top:0;bottom:0;width:4px;background-color:var(--primary-color);border-radius:0 4px 4px 0}.menu-item svg{width:1.25rem;height:1.25rem;transition:transform .2s}.menu-item a:hover svg{transform:scale(1.1)}.sidebar-footer{padding-top:1rem;margin-top:1rem;border-top:1px solid var(--border-color)}.download-logo-link{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--border-radius);text-decoration:none;color:var(--sidebar-text);transition:background-color .2s,color .2s;font-weight:500}.download-logo-link:hover{background-color:var(--sidebar-active-bg);color:var(--sidebar-text-active)}.download-logo-link svg{width:1.25rem;height:1.25rem}.app-main-content{flex-grow:1;overflow-y:auto;position:relative}.app-content{height:100%}@keyframes pageFadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-glow{0%{box-shadow:0 0 5px var(--primary-glow),inset 0 0 5px var(--primary-glow)}50%{box-shadow:0 0 20px var(--primary-glow),inset 0 0 10px var(--primary-glow)}to{box-shadow:0 0 5px var(--primary-glow),inset 0 0 5px var(--primary-glow)}}@keyframes success-pop{0%{transform:scale(.95);opacity:.8}50%{transform:scale(1.05);opacity:1}to{transform:scale(1);opacity:1}}@keyframes success-border-flash{0%{border-color:var(--border-color)}50%{border-color:var(--success-color);box-shadow:0 0 15px #4ade8080}to{border-color:var(--border-color)}}.page-transition-wrapper{animation:pageFadeInUp .5s ease-out forwards;height:100%}.mobile-header{display:none}.page-container{max-width:1200px;margin:0 auto;padding:2rem}.header{text-align:center;margin-bottom:3rem}.header h1{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;background:-webkit-linear-gradient(45deg,var(--text-color),var(--text-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.header p{font-size:1.125rem;color:var(--text-light);max-width:600px;margin:0 auto}.main-content{display:grid;grid-template-columns:350px 1fr;gap:2rem;align-items:flex-start}.controls-panel{background-color:var(--panel-background);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border-color);position:sticky;top:2rem}.input-group{margin-bottom:1.5rem}.input-label{display:block;font-weight:500;margin-bottom:.5rem;font-size:.875rem;color:var(--text-color)}.input-description{font-size:.8rem;color:var(--text-light);margin-top:-.25rem;margin-bottom:.5rem}.image-preview-container{position:relative;border-radius:var(--border-radius);overflow:hidden;border:1px solid var(--border-color)}.image-preview-container.upload-success{animation:success-border-flash 1.5s ease-out}.image-preview-container.upload-success .image-preview{animation:success-pop .5s ease-out}.image-preview{width:100%;height:auto;display:block;aspect-ratio:1 / 1;object-fit:cover}.clear-button{position:absolute;top:.5rem;right:.5rem;background-color:#1e293bb3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--text-color);border:1px solid var(--border-color);border-radius:50%;width:1.75rem;height:1.75rem;font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.clear-button:hover{background-color:var(--primary-color);color:#fff;transform:scale(1.1) rotate(90deg);border-color:var(--primary-color)}.file-drop-area{border:2px dashed var(--border-color);border-radius:var(--border-radius);padding:2rem 1rem;text-align:center;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s,border-style .2s;position:relative;background-color:#ffffff05}.file-drop-area:hover{border-color:var(--primary-color);background-color:#6366f11a;box-shadow:0 0 15px var(--primary-glow)}.file-drop-area.dragging-over{border-style:solid;border-color:var(--primary-color);background-color:#6366f126;animation:pulse-glow 2s infinite ease-in-out}.file-drop-area:hover .upload-icon{color:var(--primary-color);transform:translateY(-4px)}.upload-icon{width:2.5rem;height:2.5rem;color:var(--text-light);margin-bottom:.5rem;transition:color .2s ease-in-out,transform .2s ease-in-out}.file-drop-area p{color:var(--text-light);font-size:.875rem;transition:color .2s ease-in-out}.file-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.clear-all-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.6rem;font-size:.875rem;font-weight:500;color:var(--text-light);background-color:transparent;border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s;margin-top:-.5rem;margin-bottom:1.5rem}.clear-all-button:hover{background-color:var(--sidebar-active-bg);color:var(--text-color);border-color:var(--text-light)}.clear-all-button svg{width:1rem;height:1rem}.select-input,.text-input,.static-input{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:var(--border-radius);background-color:var(--background-color);color:var(--text-color);font-size:1rem;font-family:inherit;transition:border-color .2s,box-shadow .2s}.select-input:focus,.text-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px var(--primary-glow)}.static-input{background-color:var(--sidebar-active-bg);color:var(--text-light);cursor:default}.slider-group{display:flex;align-items:center;gap:1rem}.slider-input{flex-grow:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:8px;background:var(--border-color);border-radius:5px;outline:none}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;background:var(--primary-color);cursor:pointer;border-radius:50%;transition:transform .2s,box-shadow .2s}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 0 10px var(--primary-glow)}.slider-input::-moz-range-thumb{width:20px;height:20px;background:var(--primary-color);cursor:pointer;border-radius:50%;border:none;transition:transform .2s,box-shadow .2s}.slider-input::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 0 10px var(--primary-glow)}.slider-value{font-weight:500;font-size:.875rem;min-width:3rem;text-align:right}.generate-button{width:100%;padding:.875rem;font-size:1rem;font-weight:500;color:#fff;background-color:var(--primary-color);border:none;border-radius:var(--border-radius);cursor:pointer;transition:background-color .2s,box-shadow .2s,transform .2s;margin-top:.5rem;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.generate-button:hover{background-color:var(--primary-hover);transform:translateY(-2px);box-shadow:0 0 20px var(--primary-glow)}.generate-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-glow)}.generate-button:disabled{background-color:var(--sidebar-active-bg);color:var(--text-light);cursor:not-allowed;box-shadow:none;transform:none}@keyframes gradient-animation{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.generate-button.loading,.generate-button.loading:disabled{opacity:1;background-image:linear-gradient(270deg,var(--primary-hover),var(--primary-color),var(--primary-hover));background-size:200% 200%;animation:gradient-animation 3s ease infinite;cursor:wait;transform:none;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.error-message{color:var(--error-color);margin-top:1rem;font-size:.875rem;text-align:center}.output-panel{background-color:var(--panel-background);border-radius:var(--border-radius);padding:1.5rem;box-shadow:var(--shadow);border:1px solid var(--border-color);min-height:500px;display:flex;align-items:center;justify-content:center}.placeholder{text-align:center;color:var(--text-light)}.placeholder-icon{width:4rem;height:4rem;color:var(--border-color);margin-bottom:1rem;opacity:.5}.skeleton-grid,.image-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;width:100%;height:100%}.skeleton-item{background-color:var(--sidebar-active-bg);border-radius:var(--border-radius);position:relative;overflow:hidden;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text-light);text-align:center;padding:.5rem}.spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:.75rem}@keyframes spin{to{transform:rotate(360deg)}}.loader-container p{font-size:.8rem;font-weight:500}@keyframes fadeIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.grid-item{position:relative;overflow:hidden;border-radius:var(--border-radius);animation:fadeIn .6s ease-out forwards;border:1px solid var(--border-color);transition:transform .3s ease,box-shadow .3s ease}.grid-item:hover{transform:translateY(-4px);box-shadow:0 0 25px var(--primary-glow)}.grid-item img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in;transition:transform .3s ease}.grid-item:hover img{transform:scale(1.05)}.download-button{position:absolute;bottom:1rem;left:50%;transform:translate(-50%) translateY(10px);opacity:0;background-color:var(--primary-color);color:#fff;padding:.5rem 1rem;border-radius:999px;text-decoration:none;font-size:.875rem;font-weight:500;transition:all .2s ease-in-out;display:inline-flex;align-items:center;gap:.4rem;box-shadow:var(--shadow);white-space:nowrap}.download-button:hover{background-color:var(--primary-hover);transform:translate(-50%) translateY(-2px) scale(1.05)}.grid-item:hover .download-button{opacity:1;transform:translate(-50%) translateY(0)}.output-content-wrapper{width:100%;height:100%;display:flex;flex-direction:column;gap:1rem}.output-actions{display:flex;justify-content:flex-end}.download-all-button{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:var(--sidebar-text);background-color:var(--sidebar-active-bg);border:1px solid var(--border-color);border-radius:var(--border-radius);cursor:pointer;transition:all .2s}.download-all-button:hover{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:translateY(-2px);box-shadow:0 0 15px var(--primary-glow)}.download-all-button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--primary-glow)}.download-all-button:disabled{opacity:.6;cursor:not-allowed;background-color:var(--sidebar-active-bg);color:var(--text-light);border-color:var(--border-color);transform:none;box-shadow:none}.download-all-button svg{width:1rem;height:1rem}.image-grid{flex-grow:1}.welcome-container{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;width:100%;height:100%;position:relative;overflow:hidden}.stars-background{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:block;z-index:0}@keyframes move-twink-back{0%{background-position:0 0}to{background-position:-10000px 5000px}}.stars,.twinkling{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;display:block}.stars{background:#0f172a url(https://www.script-tutorials.com/demos/360/images/stars.png) repeat top center;z-index:0}.twinkling{background:transparent url(https://www.script-tutorials.com/demos/360/images/twinkling.png) repeat top center;z-index:1;animation:move-twink-back 200s linear infinite}.welcome-content{position:relative;z-index:2;max-width:800px}.welcome-container h1{font-size:2.75rem;font-weight:800;color:#fff;margin-bottom:1rem}.welcome-description{font-size:1.1rem;color:var(--text-light);max-width:600px;margin:0 auto 2.5rem;line-height:1.7}.welcome-instructions{background-color:#1e293b80;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:var(--border-radius);padding:2rem;box-shadow:var(--shadow-lg);text-align:left}.welcome-instructions h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.instruction-list{display:flex;flex-direction:column;gap:1.5rem}.instruction-step{display:flex;align-items:flex-start;gap:1rem}.step-number{flex-shrink:0;width:2.25rem;height:2.25rem;border-radius:50%;background-color:var(--sidebar-active-bg);color:var(--text-light);display:flex;align-items:center;justify-content:center;font-weight:600;border:1px solid var(--border-color)}.step-text strong{display:block;font-weight:600;color:var(--text-color);margin-bottom:.25rem}.step-text p{color:var(--text-light);font-size:.9rem}@media (max-width: 1024px){.main-content{grid-template-columns:300px 1fr}}@media (max-width: 900px){.main-content{grid-template-columns:1fr}.controls-panel{position:static}.output-panel{min-height:400px}}@media (max-width: 768px){.sidebar{position:fixed;top:0;left:0;height:100%;z-index:1000;transform:translate(-100%);box-shadow:var(--shadow-lg)}.app-wrapper.sidebar-open .sidebar{transform:translate(0)}.sidebar-close-button{display:block;background:transparent;border:none;font-size:2rem;line-height:1;color:var(--text-light);cursor:pointer;transition:transform .2s,color .2s}.sidebar-close-button:hover{transform:rotate(90deg);color:var(--text-color)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172ab3;z-index:999;opacity:0;pointer-events:none;transition:opacity .3s ease-in-out}.app-wrapper.sidebar-open .sidebar-overlay{display:block;opacity:1;pointer-events:auto}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background-color:var(--sidebar-background);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:10}.mobile-header .logo-svg{height:32px}.menu-toggle{background:transparent;border:none;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center}.menu-toggle svg{width:24px;height:24px;fill:var(--text-color)}.page-container{padding:1rem}.welcome-container{padding:1.5rem 1rem}.welcome-container h1{font-size:2.25rem}.welcome-description{font-size:1rem;margin-bottom:2rem}}@media (max-width: 500px){.header h1{font-size:2rem}.controls-panel,.output-panel{padding:1rem}.skeleton-grid,.image-grid{grid-template-columns:1fr}.welcome-container h1{font-size:2rem}.welcome-instructions{padding:1.5rem 1rem}.welcome-instructions h2{font-size:1.25rem}.instruction-step{gap:.75rem}.step-number{width:2rem;height:2rem;font-size:.9rem}.step-text p{font-size:.85rem}}.zoom-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172acc;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .3s ease-out forwards;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.zoom-content{position:relative;max-width:90vw;max-height:90vh;animation:zoomIn .3s ease-out forwards}.zoomed-image{display:block;max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--border-radius);box-shadow:var(--shadow-lg)}.zoom-close-button{position:absolute;top:-1.5rem;right:-1.5rem;background-color:#1e293b80;color:#fff;border:1px solid var(--border-color);border-radius:50%;width:3rem;height:3rem;font-size:2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .2s}.zoom-close-button:hover{background-color:var(--primary-color);transform:rotate(90deg) scale(1.1)}@keyframes zoomIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width: 768px){.zoom-overlay{padding:.5rem}.zoom-close-button{top:.5rem;right:.5rem;width:2.5rem;height:2.5rem;font-size:1.5rem}}
