*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;width:100%}body{background:#000;color:#fff;font-family:Inter,sans-serif;overflow-x:hidden;overflow-y:auto;min-height:400vh}.app{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-start;padding:2rem;width:100%;min-height:100%}.wrapper{width:100%;max-width:700px;min-width:700px}h1{text-align:center;font-size:1rem;margin-bottom:1rem}h3{text-align:center;margin-top:2rem}.chat-window{background:#111;border:1px solid #333;border-radius:10px;padding:1rem;margin-bottom:1rem;max-height:500px;overflow-y:auto;width:100%;min-height:120px}.message-row{display:flex;flex-direction:row;margin-bottom:.6rem}.message{padding:.6rem 1rem;border-radius:12px;max-width:80%;word-break:break-word;font-size:1rem;line-height:1.4;position:relative}.message.user{margin-left:auto;background:#06c;color:#fff}.message.user:after{content:"";position:absolute;right:-10px;top:10px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:10px solid #0066cc}.message.bot{margin-right:auto;background:#333;color:#f0f0f0}.message.bot:after{content:"";position:absolute;left:-10px;top:10px;width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:10px solid #333}.typing-dots{display:inline-flex;gap:4px}.typing-dots span{width:6px;height:6px;background:#888;border-radius:50%;animation:blink 1.4s infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.3}40%{opacity:1}}form{display:flex;gap:.5rem}form input{flex:1;padding:.6rem 1rem;border:1px solid #444;border-radius:10px;background:#111;color:#fff}form button{padding:.6rem 1rem;background:#444;color:#fff;border:none;border-radius:10px;cursor:pointer}form button:disabled{opacity:.4;cursor:not-allowed}.category-buttons{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem;margin-top:.5rem}.category-btn{padding:.4rem 1rem;background:#333;color:#fff;border:none;border-radius:20px;cursor:pointer;font-size:.9rem;transition:background .2s ease}.category-btn:hover{background:#444}.category-btn.active{background:#555;font-weight:700}.personality-grid{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.personality-card{background:#1a1a1a;border:1px solid #333;border-radius:12px;padding:.75rem;width:160px;text-align:center;cursor:pointer;transition:transform .2s ease,border .2s ease}.personality-card:hover{transform:scale(1.03);border-color:#555}.personality-card.selected{border-color:#39ff14;background:#222;box-shadow:0 0 10px 2px #39ff14bf}.personality-card .emoji{font-size:1.8rem;margin-bottom:.3rem}.personality-card .name{font-weight:700;margin-bottom:.2rem}.personality-card .description{font-size:.85rem;color:#bbb}.stars{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.star{position:absolute;background:#ffffffb3;border-radius:50%;animation:twinkle 2s infinite ease-in-out}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:1}}.shooting-star-wrapper{position:absolute;z-index:0;pointer-events:none;transform-origin:left center}.shooting-star{width:80px;height:2px;background:linear-gradient(to left,white,transparent);animation:shoot 1.2s linear forwards}@keyframes shoot{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.splash-screen{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;height:100vh;width:100%;background:#000;position:relative;z-index:2;text-align:center;padding-top:6vh}.splash-content{z-index:3;color:#fff;font-family:Inter,sans-serif;max-width:800px;padding:2rem;background-color:#0009;border-radius:12px;box-shadow:0 0 20px #ffffff1a}.splash-content h1{font-size:2.5rem;margin-bottom:.5rem}.splash-content h2{font-size:1.5rem;margin-bottom:1.5rem;color:#ccc}.splash-content p{font-size:1.1rem;line-height:1.6;margin-bottom:1.5rem}.go-button{padding:.8rem 2rem;font-size:1.2rem;background:#39ff14;color:#000;border:none;border-radius:10px;cursor:pointer;box-shadow:0 0 10px #39ff14,0 0 20px #39ff14;transition:transform .2s ease}.go-button:hover{transform:scale(1.05)}.subtitle{text-align:center;font-size:1.3rem;color:#ccc;margin-top:-.5rem;margin-bottom:1.5rem}.message.user.sent{animation:flashSent .3s ease-out}@keyframes flashSent{0%{transform:scale(1.05);opacity:.5}to{transform:scale(1);opacity:1}}@media (max-width: 700px){.wrapper{min-width:0;padding:0 1rem}.app{padding:1rem}.splash-content{width:min(90vw,800px);padding:1.5rem}}.wrapper>h2{font-size:1.25rem;margin-bottom:1rem;text-align:center}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;padding:1rem}.modal-content{background:#1a1a1a;border:1px solid #333;border-radius:15px;padding:2rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;color:#888;font-size:1.5rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#fff}.modal-header{text-align:center;margin-bottom:2rem}.modal-header h2{margin:0 0 1rem;font-size:1.5rem}.usage-info{color:#ccc;margin:0}.plan-card{background:#222;border:2px solid #444;border-radius:10px;padding:1.5rem;margin-bottom:1.5rem;text-align:center}.plan-card.premium{border-color:#39ff14;box-shadow:0 0 20px #39ff144d}.plan-header h3{margin:0 0 .5rem;font-size:1.3rem}.price{font-size:2rem;font-weight:700;color:#39ff14;margin-bottom:1rem}.features{list-style:none;padding:0;margin:1rem 0;text-align:left}.features li{padding:.3rem 0;color:#ddd}.upgrade-btn{background:#39ff14;color:#000;border:none;border-radius:10px;padding:.8rem 2rem;font-size:1.1rem;font-weight:700;cursor:pointer;transition:transform .2s ease;width:100%}.upgrade-btn:hover{transform:scale(1.05)}.alternative{text-align:center;padding:1rem;border-top:1px solid #333;color:#aaa}.reset-time{font-size:.9rem;color:#888;margin:.5rem 0 0}.email-capture{text-align:center}.email-capture h3{margin:0 0 1rem;color:#39ff14}.email-capture p{margin:0 0 1.5rem;color:#ccc;line-height:1.4}.email-capture form{display:flex;gap:.5rem;margin-bottom:1rem}.email-input{flex:1;padding:.8rem 1rem;border:1px solid #444;border-radius:8px;background:#111;color:#fff;font-size:1rem}.email-submit{padding:.8rem 1.5rem;background:#39ff14;color:#000;border:none;border-radius:8px;font-weight:700;cursor:pointer;transition:transform .2s ease}.email-submit:hover{transform:scale(1.05)}.email-disclaimer{font-size:.8rem;color:#888;margin:0}.usage-counter{background:#222;border:1px solid #444;border-radius:8px;padding:.5rem 1rem;margin-bottom:1rem;text-align:center;font-size:.9rem;color:#ccc}.usage-counter.warning{border-color:#ff6b35;background:#ff6b351a}.usage-counter.danger{border-color:#f33;background:#ff33331a;color:#f99}@media (max-width: 600px){.modal-content{margin:1rem;padding:1.5rem}.email-capture form{flex-direction:column}.features{text-align:center}}.auth-modal{max-width:400px}.auth-header{text-align:center;margin-bottom:2rem}.auth-header h2{margin:0 0 .5rem;font-size:1.4rem}.auth-subtitle{color:#ccc;margin:0;font-size:.95rem;line-height:1.4}.auth-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.auth-input{padding:.8rem 1rem;border:1px solid #444;border-radius:8px;background:#111;color:#fff;font-size:1rem}.auth-input:focus{outline:none;border-color:#39ff14;box-shadow:0 0 0 2px #39ff1433}.auth-submit{padding:.8rem;background:#39ff14;color:#000;border:none;border-radius:8px;font-size:1rem;font-weight:700;cursor:pointer;transition:transform .2s ease}.auth-submit:hover:not(:disabled){transform:scale(1.02)}.auth-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-links{text-align:center;border-top:1px solid #333;padding-top:1rem;margin-bottom:1rem}.auth-links p{margin:.5rem 0;color:#aaa;font-size:.9rem}.auth-link{background:none;border:none;color:#39ff14;cursor:pointer;text-decoration:underline;font-size:inherit;margin-left:.5rem}.auth-link:hover{color:#4dff2a}.auth-error{background:#ff33331a;border:1px solid #ff3333;border-radius:6px;padding:.8rem;color:#f99;font-size:.9rem;margin-bottom:1rem;text-align:center}.auth-message{background:#39ff141a;border:1px solid #39ff14;border-radius:6px;padding:.8rem;color:#39ff14;font-size:.9rem;margin-bottom:1rem;text-align:center}.auth-benefits{background:#222;border-radius:8px;padding:1rem;margin-top:1rem}.auth-benefits h4{margin:0 0 .8rem;color:#39ff14;font-size:1rem}.auth-benefits ul{list-style:none;padding:0;margin:0}.auth-benefits li{padding:.3rem 0;color:#ddd;font-size:.9rem}.user-menu{position:fixed;top:1rem;right:1rem;z-index:100}.user-info{display:flex;align-items:center;gap:.5rem;background:#222;border:1px solid #444;border-radius:20px;padding:.5rem 1rem;color:#ccc;font-size:.9rem}.user-email{color:#39ff14;font-weight:500}.sign-out-btn{background:none;border:1px solid #666;color:#ccc;border-radius:15px;padding:.3rem .8rem;font-size:.8rem;cursor:pointer;transition:all .2s ease}.sign-out-btn:hover{border-color:#ff6b6b;color:#f99}.auth-buttons{display:flex;gap:.5rem;justify-content:center;margin-bottom:1rem}.auth-trigger-btn{padding:.5rem 1rem;border:1px solid #39ff14;background:transparent;color:#39ff14;border-radius:20px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.auth-trigger-btn:hover,.auth-trigger-btn.primary{background:#39ff14;color:#000}.auth-trigger-btn.primary:hover{transform:scale(1.05)}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
