/* ═══════════════════════════════════════════════════════ LITEHAT · REFRACTIVE OBSIDIAN · DESIGN SYSTEM #000000 Void · Chromatic Refraction · Kinetic Wizard ═══════════════════════════════════════════════════════ */ :root{--void:#000;--indigo:#4F46E5;--cyan:#06B6D4;--green:#10B981;--gold:#F59E0B;--text:#e0e0ff;--text2:#9090b0;--text3:#404060;--radius:28px;--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif} *,*::before,*::after{margin:0;padding:0;box-sizing:border-box} html,body{height:100%;overflow:hidden;font-family:var(--font);background:var(--void);color:var(--text);-webkit-font-smoothing:antialiased} ::selection{background:rgba(79,70,229,.3);color:#fff} .void-canvas{position:fixed;inset:0;z-index:0} .void-canvas canvas{width:100%;height:100%} .refraction-layer{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.7} .refraction-layer::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(79,70,229,.12) 0%,transparent 50%),radial-gradient(ellipse at 70% 60%,rgba(6,182,212,.08) 0%,transparent 50%),radial-gradient(ellipse at 50% 80%,rgba(16,185,129,.06) 0%,transparent 40%);animation:chromaticShift 12s ease-in-out infinite} @keyframes chromaticShift{0%,100%{opacity:.7}33%{opacity:.9}66%{opacity:.6}} .app-shell{position:relative;z-index:2;display:flex;flex-direction:column;height:100vh;transition:opacity .5s} .app-shell.building .hero-header{opacity:0;pointer-events:none;transition:opacity .6s} .hero-header{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:2rem;text-align:center;transition:opacity .6s} .wizard-stage{position:relative;width:120px;height:120px;margin-bottom:1.5rem} .geometric-wizard{width:100%;height:100%;filter:drop-shadow(0 0 30px rgba(79,70,229,.5));transition:filter .5s,transform .3s} .geometric-wizard.levitating{animation:levitate 3s ease-in-out infinite} .geometric-wizard.spinning{animation:spinAndSpark .8s linear infinite} .geometric-wizard.success{filter:drop-shadow(0 0 40px rgba(16,185,129,.7))} @keyframes levitate{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}} @keyframes spinAndSpark{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.05)}100%{transform:rotate(360deg) scale(1)}} .spark-container{position:absolute;inset:0;pointer-events:none;display:none} .spark{position:absolute;width:3px;height:3px;background:var(--cyan);border-radius:50%;opacity:0} .spark:nth-child(1){top:10%;left:20%}.spark:nth-child(2){top:15%;right:25%}.spark:nth-child(3){bottom:20%;left:30%}.spark:nth-child(4){bottom:15%;right:20%}.spark:nth-child(5){top:50%;left:5%} .hero-title{font-size:clamp(2.5rem,8vw,5rem);font-weight:800;line-height:1.1;background:linear-gradient(135deg,var(--indigo),var(--cyan),var(--green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text} .hero-sub{font-size:1.1rem;color:var(--text2);margin-top:.75rem;max-width:500px;font-weight:400} .dialogue-stream{position:fixed;inset:0;z-index:3;display:none;flex-direction:column;align-items:center;justify-content:center;pointer-events:none} .dialogue-stream.active{display:flex} .dialogue-bubble{max-width:700px;padding:1.25rem 2rem;background:rgba(255,255,255,.02);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.04);border-radius:var(--radius);font-size:1rem;line-height:1.7;color:var(--text2);animation:fadeInUp .5s ease-out;margin-bottom:.75rem} @keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}} .preview-stage{display:none;position:fixed;inset:0;z-index:4;background:var(--void)} .preview-stage.active{display:flex;flex-direction:column} .preview-frame{flex:1;border:none;background:#fff} .preview-controls{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:rgba(0,0,0,.8);border-top:1px solid rgba(255,255,255,.06)} .preview-title{font-size:.8rem;color:var(--text2)} .preview-close{background:none;border:1px solid rgba(255,255,255,.1);color:var(--text2);padding:.3rem .8rem;border-radius:20px;cursor:pointer;font-size:.75rem;transition:all .2s} .preview-close:hover{background:rgba(255,255,255,.05);color:var(--text)} .input-stage{position:fixed;bottom:0;left:0;right:0;z-index:5;padding:1rem 1rem 1.5rem;display:flex;justify-content:center} .input-bar{display:flex;align-items:center;gap:.75rem;max-width:640px;width:100%;padding:.6rem .6rem .6rem 1.25rem;background:rgba(255,255,255,.03);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);transition:border-color .3s,box-shadow .3s} .input-bar:focus-within{border-color:rgba(79,70,229,.3);box-shadow:0 0 30px rgba(79,70,229,.08)} #prompt-input{flex:1;background:transparent;border:none;color:var(--text);font-family:var(--font);font-size:.95rem;line-height:1.5;resize:none;outline:none;max-height:80px} #prompt-input::placeholder{color:var(--text3)} .send-btn{width:44px;height:44px;min-width:44px;border-radius:50%;border:none;background:var(--indigo);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative} .send-btn:hover{background:var(--cyan);transform:scale(1.05);box-shadow:0 0 25px rgba(6,182,212,.3)} .send-btn:disabled{background:rgba(255,255,255,.05);color:var(--text3);cursor:not-allowed;transform:none;box-shadow:none} .send-btn svg{width:18px;height:18px;transition:transform .2s} .send-btn:hover svg{transform:translateX(1px)} .send-btn .bolt{fill:#fff} .send-btn:disabled .bolt{fill:var(--text3)} .status-line{position:fixed;top:0;left:0;right:0;z-index:6;height:2px;background:transparent;transition:background .3s} .status-line.building{background:linear-gradient(90deg,var(--indigo),var(--cyan),var(--green));animation:shimmer 1.5s ease-in-out infinite} .status-line.stable{background:var(--green)} .status-line.error{background:#EF4444} @keyframes shimmer{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}} .toast-container{position:fixed;top:1rem;right:1rem;z-index:10;display:flex;flex-direction:column;gap:.5rem} .toast{padding:.65rem 1.25rem;border-radius:20px;background:rgba(255,255,255,.03);backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.06);color:var(--text);font-size:.8rem;animation:toastIn .3s ease-out} .toast.error{border-color:rgba(239,68,68,.3)} .toast.success{border-color:rgba(16,185,129,.3)} @keyframes toastIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}} @media(max-width:600px){.hero-title{font-size:2rem}.hero-sub{font-size:.9rem}.input-stage{padding:.5rem .5rem 1rem}.input-bar{padding:.5rem .5rem .5rem 1rem}}