:root{--primary-color:#4f46e5;--secondary-color:#818cf8;--background-color:#111827;--surface-color:#1f2937;--text-color:#f9fafb;--text-secondary:#d1d5db;--gray-light:#374151;--white:#f9fafb}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.5}.container{max-width:1200px;margin:0 auto;padding:2rem;min-height:100vh}.container,.header{display:flex;flex-direction:column}.header{text-align:center;margin-bottom:2rem;padding:1rem;align-items:center;gap:1rem}.header h1{font-size:1.75rem;color:var(--white);margin:0}.logo{font-size:2.5rem;font-weight:700;color:var(--primary-color);margin-bottom:1rem}.profile-image{width:120px;height:120px;border-radius:50%;border:3px solid var(--primary-color);object-fit:cover;margin-bottom:1rem}.achievements{display:flex;gap:.5rem;margin-top:.5rem}.badge{background-color:var(--primary-color);color:var(--white);padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:500;letter-spacing:.025em}.chat-container{flex:1 1;background:var(--surface-color);border-radius:1rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.2);display:flex;flex-direction:column;overflow:hidden}.chat-messages{flex:1 1;overflow-y:auto;padding:2rem}.welcome-message{text-align:center;margin:2rem 0;color:var(--text-color);background:var(--gray-light);padding:2rem;border-radius:1rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.welcome-message h2{font-size:1.5rem;margin-bottom:.5rem;color:var(--white)}.welcome-message p{color:var(--text-secondary)}.message{margin-bottom:1rem;padding:1rem;border-radius:.5rem;max-width:80%}.user-message{background-color:var(--primary-color);color:var(--white);margin-left:auto}.bot-message{margin-right:auto}.bot-message,.message.typing{background-color:var(--gray-light);color:var(--text-secondary)}.message.typing{opacity:.7}.typing-animation{display:inline-block;overflow:hidden;white-space:pre-wrap;word-wrap:break-word;animation:typing 2s steps(40);border-right:2px solid transparent}.typing-cursor{display:inline-block;width:2px;height:20px;background-color:var(--primary-color);margin-left:2px;animation:blink 1s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes typing{0%{width:0}to{width:100%}}.chat-input-container{padding:1rem;background-color:var(--surface-color);border-top:1px solid var(--gray-light)}.chat-form{display:flex;gap:1rem}.user-input{flex:1 1;padding:.75rem 1rem;border:2px solid var(--gray-light);border-radius:.5rem;font-size:1rem;transition:border-color .3s ease;background-color:var(--background-color);color:var(--text-color)}.user-input:focus{outline:none;border-color:var(--primary-color)}button{background-color:var(--primary-color);color:var(--white);border:none;border-radius:.5rem;padding:.75rem 1.5rem;cursor:pointer;transition:background-color .3s ease}button:hover{background-color:var(--secondary-color)}.send-button svg{width:1.5rem;height:1.5rem}.loading{color:var(--text-secondary);font-style:italic}.mosaic-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;overflow:hidden;pointer-events:none}.mosaic-item{position:absolute;max-width:200px;overflow:visible;border-radius:10px;opacity:.3}.mosaic-item,.mosaic-item img{height:auto;transition:all .5s ease-in-out}.mosaic-item img{width:100%;object-fit:contain;filter:grayscale(70%)}@keyframes float{0%{transform:translate(0) rotate(0deg) scale(1)}25%{transform:translate(var(--float-x1),var(--float-y1)) rotate(var(--rotate1)) scale(var(--scale1))}50%{transform:translate(var(--float-x2),var(--float-y2)) rotate(var(--rotate2)) scale(var(--scale2))}75%{transform:translate(var(--float-x3),var(--float-y3)) rotate(var(--rotate3)) scale(var(--scale3))}to{transform:translate(0) rotate(0deg) scale(1)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(var(--pulse-scale))}to{transform:scale(1)}}@keyframes glow{0%{filter:grayscale(70%) brightness(1)}50%{filter:grayscale(50%) brightness(1.2)}to{filter:grayscale(70%) brightness(1)}}.password-container{flex:1 1;display:flex;justify-content:center;align-items:center;padding:2rem}.password-box{background:var(--surface-color);border-radius:1rem;box-shadow:0 4px 12px rgba(0,0,0,.3);padding:2.5rem;max-width:450px;width:100%;text-align:center;border:1px solid var(--gray-light)}.password-box h2{font-size:1.75rem;margin-bottom:1rem;color:var(--white)}.password-box p{color:var(--text-secondary);margin-bottom:1.5rem}.password-error{color:#e74c3c;background-color:rgba(231,76,60,.1);border-radius:.5rem;padding:.75rem;margin-bottom:1.5rem;font-size:.9rem}.password-form{display:flex;flex-direction:column;gap:1rem}.password-input{padding:.75rem 1rem;border:2px solid var(--gray-light);border-radius:.5rem;font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease;background-color:var(--background-color);color:var(--text-color)}.password-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(79,70,229,.2)}.password-button{background-color:var(--primary-color);color:var(--white);border:none;border-radius:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .3s ease,transform .1s ease}.password-button:hover{background-color:var(--secondary-color);transform:translateY(-1px)}.password-button:active{transform:translateY(0)}@keyframes wave{0%{transform:rotate(0deg)}25%{transform:rotate(var(--wave-angle))}75%{transform:rotate(calc(var(--wave-angle) * -1))}to{transform:rotate(0deg)}}@keyframes drift{0%{transform:translateX(0) translateY(0)}25%{transform:translateX(var(--drift-x)) translateY(var(--drift-y))}75%{transform:translateX(calc(var(--drift-x) * -.5)) translateY(calc(var(--drift-y) * -.5))}to{transform:translateX(0) translateY(0)}}.mosaic-item.floating{animation:float var(--float-duration) ease-in-out infinite,pulse var(--pulse-duration) ease-in-out infinite,drift var(--drift-duration) ease-in-out infinite;animation-delay:var(--float-delay)}.mosaic-item.floating img{animation:glow var(--glow-duration) ease-in-out infinite,wave var(--wave-duration) ease-in-out infinite;animation-delay:var(--glow-delay)}.mosaic-item:hover{opacity:.5;transform:scale(1.05);z-index:1}.mosaic-item:hover img{filter:grayscale(30%) brightness(1.2);transform:rotate(var(--hover-rotate))}.mosaic-item.special-1{animation-timing-function:cubic-bezier(.4,0,.2,1)}.mosaic-item.special-2{animation-timing-function:cubic-bezier(.68,-.55,.265,1.55)}.mosaic-item.special-3{animation-timing-function:cubic-bezier(.25,.46,.45,.94)}.mosaic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-auto-rows:150px;position:absolute;width:calc(100% + 300px);height:calc(100% + 300px);top:-150px;left:-150px;animation:moveBackground 60s linear infinite}@keyframes moveBackground{0%{transform:translate(0) rotate(0deg)}25%{transform:translate(-50px,50px) rotate(1deg)}50%{transform:translate(50px,-50px) rotate(0deg)}75%{transform:translate(25px,25px) rotate(-1deg)}to{transform:translate(0) rotate(0deg)}}.disclaimer{position:fixed;bottom:0;left:0;width:100%;background-color:var(--surface-color);color:var(--text-secondary);text-align:center;padding:8px;font-size:.8rem;border-top:1px solid var(--gray-light);z-index:1000;opacity:.8}.disclaimer a{color:var(--primary-color);text-decoration:none}.disclaimer a:hover{text-decoration:underline}.typing-indicator{width:100%}.typing-bubble{background-color:var(--gray-light);padding:1rem;border-radius:.5rem;color:var(--text-secondary);display:inline-flex;align-items:center;max-width:80%;position:relative}.typing-text{color:var(--white);font-weight:500}.typing-dots{display:inline-flex;margin-left:10px}.dot{width:6px;height:6px;border-radius:50%;background-color:var(--primary-color);margin:0 2px;opacity:.8}.dot1{animation:dot-blink 1.4s 0s infinite}.dot2{animation:dot-blink 1.4s .2s infinite}.dot3{animation:dot-blink 1.4s .4s infinite}@keyframes dot-blink{0%{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{opacity:.4;transform:scale(.8)}}.loading-icon{animation:spin 1.5s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}