Spaces:
Runtime error
Runtime error
| /* ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| β WIZARD-VIBE β Liquid Glass Design System β | |
| β Minimalist. Experimental. Cool. β | |
| ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| :root { | |
| --glass-bg: rgba(255,255,255,.03); | |
| --glass-border: rgba(255,255,255,.06); | |
| --purple: #8B5CF6; --cyan: #06B6D4; --green: #10B981; --gold: #F59E0B; --red: #EF4444; | |
| --text-primary: #e0e0ff; --text-secondary: #9090b0; --text-muted: #606080; | |
| --bg-deep: #0a0a1a; --bg-mid: #1a0a2e; | |
| --radius-lg: 20px; --radius-md: 12px; --radius-sm: 8px; | |
| --font-mono: 'SF Mono','Fira Code','JetBrains Mono',monospace; | |
| --font-sans: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; | |
| --transition-fast: 150ms cubic-bezier(.4,0,.2,1); | |
| --transition-smooth: 300ms cubic-bezier(.4,0,.2,1); | |
| } | |
| *,*::before,*::after{margin:0;padding:0;box-sizing:border-box} | |
| html,body{height:100%;overflow:hidden} | |
| body{font-family:var(--font-sans);background:linear-gradient(135deg,var(--bg-deep) 0%,var(--bg-mid) 50%,#0a1a2e 100%);color:var(--text-primary);-webkit-font-smoothing:antialiased} | |
| ::selection{background:rgba(139,92,246,.5);color:#fff} | |
| .app-shell{display:flex;flex-direction:column;height:100vh;padding:1rem;gap:.75rem;max-width:1600px;margin:0 auto} | |
| /* βββ Logo βββββββββββββββββ */ | |
| .logo-container{display:flex;align-items:center;gap:.75rem;padding:.25rem 0} | |
| .wizard-hat{width:48px;height:48px;filter:drop-shadow(0 0 20px rgba(139,92,246,.6));transition:filter var(--transition-smooth)} | |
| .wizard-hat.stable{filter:drop-shadow(0 0 24px rgba(16,185,129,.8))!important} | |
| .wizard-hat.error{filter:drop-shadow(0 0 24px rgba(239,68,68,.8))!important} | |
| .wizard-hat.published{filter:drop-shadow(0 0 30px rgba(245,158,11,.9))!important} | |
| .wizard-hat.building{animation:hat-pulse 1.5s ease-in-out infinite} | |
| @keyframes hat-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}} | |
| #status-ring{transition:stroke var(--transition-smooth),opacity var(--transition-smooth)} | |
| #status-ring.stable{stroke:var(--green);opacity:.8} | |
| #status-ring.error{stroke:var(--red);opacity:.8} | |
| #status-ring.published{stroke:var(--gold);opacity:1} | |
| .logo-label{font-size:1.1rem;font-weight:700;letter-spacing:.15em;background:linear-gradient(135deg,var(--purple),var(--cyan),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent} | |
| /* βββ Input ββββββββββββββββ */ | |
| .prompt-section{flex-shrink:0} | |
| .input-glass{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)} | |
| .input-glass:focus-within{border-color:rgba(139,92,246,.4);box-shadow:0 0 30px rgba(139,92,246,.1)} | |
| #prompt-input{width:100%;background:transparent;border:none;color:var(--text-primary);font-family:var(--font-sans);font-size:.95rem;line-height:1.6;resize:none;outline:none} | |
| #prompt-input::placeholder{color:var(--text-muted)} | |
| .input-actions{display:flex;align-items:center;gap:.75rem;margin-top:.75rem} | |
| /* βββ Buttons ββββββββββββββ */ | |
| .btn-primary{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.5rem;background:linear-gradient(135deg,var(--purple),var(--cyan));border:none;border-radius:var(--radius-md);color:#fff;font-family:var(--font-sans);font-size:.9rem;font-weight:600;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),opacity var(--transition-fast)} | |
| .btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px rgba(139,92,246,.4)} | |
| .btn-primary:active{transform:translateY(0)} | |
| .btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none} | |
| .btn-publish{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:linear-gradient(135deg,var(--green),var(--cyan));border:none;border-radius:var(--radius-md);color:#fff;font-family:var(--font-sans);font-size:.95rem;font-weight:700;cursor:pointer;transition:all var(--transition-smooth)} | |
| .btn-publish:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 30px rgba(16,185,129,.4)} | |
| .btn-publish:disabled{background:rgba(255,255,255,.05);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none} | |
| .btn-publish.gold{background:linear-gradient(135deg,var(--gold),#FCD34D);box-shadow:0 0 30px rgba(245,158,11,.5);animation:gold-pulse 2s ease-in-out infinite} | |
| @keyframes gold-pulse{0%,100%{box-shadow:0 0 20px rgba(245,158,11,.3)}50%{box-shadow:0 0 40px rgba(245,158,11,.6)}} | |
| /* βββ Badges βββββββββββββββ */ | |
| .model-badges{display:flex;gap:.5rem;flex-wrap:wrap} | |
| .model-badge{font-size:.7rem;padding:.2rem .5rem;border-radius:20px;background:rgba(139,92,246,.15);color:var(--purple);border:1px solid rgba(139,92,246,.2);white-space:nowrap} | |
| .model-badge.vision{background:rgba(6,182,212,.15);color:var(--cyan);border-color:rgba(6,182,212,.2)} | |
| .model-badge.logic{background:rgba(245,158,11,.15);color:var(--gold);border-color:rgba(245,158,11,.2)} | |
| .model-badge.code{background:rgba(16,185,129,.15);color:var(--green);border-color:rgba(16,185,129,.2)} | |
| /* βββ Status βββββββββββββββ */ | |
| .status-bar{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--glass-bg);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-sm);font-size:.8rem;flex-shrink:0} | |
| .status-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-muted);transition:background var(--transition-fast)} | |
| .status-indicator.building{background:var(--purple);animation:blink 1s infinite} | |
| .status-indicator.streaming{background:var(--cyan);animation:blink .5s infinite} | |
| .status-indicator.stable{background:var(--green)} | |
| .status-indicator.error{background:var(--red)} | |
| .status-indicator.published{background:var(--gold)} | |
| @keyframes blink{0%,100%{opacity:1}50%{opacity:.3}} | |
| .status-text{color:var(--text-secondary);font-weight:500} | |
| .status-phase{color:var(--text-muted);margin-left:auto} | |
| /* βββ Main Split βββββββββββ */ | |
| .main-split{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;flex:1;min-height:0} | |
| @media(max-width:900px){.main-split{grid-template-columns:1fr;grid-template-rows:1fr 1fr}} | |
| /* βββ Panels βββββββββββββββ */ | |
| .panel{display:flex;flex-direction:column;background:var(--glass-bg);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden} | |
| .panel-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--glass-border);flex-shrink:0} | |
| .panel-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em} | |
| .panel-action{background:none;border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:.25rem .5rem;color:var(--text-secondary);cursor:pointer;font-size:.85rem;transition:background var(--transition-fast)} | |
| .panel-action:hover{background:var(--glass-bg)} | |
| .sandbox-badge{font-size:.85rem} | |
| /* βββ Code View ββββββββββββ */ | |
| .code-view{flex:1;overflow:auto;padding:1rem;margin:0;font-family:var(--font-mono);font-size:.8rem;line-height:1.6;color:var(--text-secondary);white-space:pre-wrap;word-break:break-all} | |
| .code-view .placeholder{color:var(--text-muted);font-style:italic} | |
| /* βββ Preview ββββββββββββββ */ | |
| .preview-container{flex:1;position:relative;background:#fff} | |
| .preview-iframe{width:100%;height:100%;border:none;display:block} | |
| .preview-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,10,26,.8);backdrop-filter:blur(4px);transition:opacity var(--transition-smooth);pointer-events:none} | |
| .preview-overlay.hidden{opacity:0} | |
| .overlay-content{text-align:center;color:var(--text-secondary)} | |
| .wizard-loader{width:40px;height:40px;margin:0 auto 1rem;border:2px solid var(--glass-border);border-top-color:var(--purple);border-radius:50%;animation:spin 1s linear infinite} | |
| @keyframes spin{to{transform:rotate(360deg)}} | |
| /* βββ Publish ββββββββββββββ */ | |
| .publish-section{flex-shrink:0} | |
| .publish-gate{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--glass-bg);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg)} | |
| .publish-gate.unlocked{border-color:rgba(16,185,129,.3);box-shadow:0 0 20px rgba(16,185,129,.1)} | |
| .gate-status{display:flex;align-items:center;gap:.5rem} | |
| .gate-icon{font-size:1.1rem} | |
| .gate-text{font-size:.85rem;color:var(--text-secondary)} | |
| .publish-gate.unlocked .gate-text{color:var(--green)} | |
| .result-card{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem;border-radius:var(--radius-lg);margin-top:.5rem} | |
| .glass-card{background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.2);backdrop-filter:blur(20px)} | |
| .result-icon{font-size:2rem;flex-shrink:0} | |
| .result-body h3{font-size:1.1rem;margin-bottom:.25rem} | |
| .result-body p{color:var(--text-secondary);font-size:.85rem;margin-bottom:.75rem;word-break:break-all} | |
| .result-links{display:flex;gap:1rem} | |
| .result-links a{color:var(--cyan);text-decoration:none;font-size:.85rem;font-weight:500;transition:color var(--transition-fast)} | |
| .result-links a:hover{color:var(--purple)} | |
| /* βββ Toast ββββββββββββββββ */ | |
| .toast-container{position:fixed;bottom:1rem;right:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:1000} | |
| .toast{padding:.75rem 1.25rem;border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(20px);border:1px solid var(--glass-border);color:var(--text-primary);font-size:.85rem;animation:toast-in .3s ease-out;max-width:360px} | |
| .toast.error{border-color:rgba(239,68,68,.3)} | |
| .toast.success{border-color:rgba(16,185,129,.3)} | |
| @keyframes toast-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}} | |
| .code-chunk-new{animation:fade-in .15s ease-out} | |
| @keyframes fade-in{from{opacity:0}to{opacity:1}} | |