@import url(https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700&display=swap);@font-face{font-display:swap;font-family:Grotesk-Regular;font-style:normal;font-weight:400;src:url(/static/media/HKGrotesk-Regular.11b821c8f3568b9bf3ff.woff)}body{margin:0;overscroll-behavior:none}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root,body,html{background-color:#fafafa;box-sizing:border-box;color:#1a1a1a;font-family:Inter,Grotesk-Regular,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100%;margin:0;padding:0;width:100%}.elegant-serif{font-family:Playfair Display,Georgia,serif}.elegant-sans{font-family:Inter,Grotesk-Regular,sans-serif}.auth-page{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-container{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;max-width:500px;overflow:hidden;width:100%}.auth-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:32px;position:relative;text-align:center}.back-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:none;border-radius:8px;color:#fff;left:20px;padding:8px;position:absolute;top:20px;transition:all .2s ease}.back-button:hover{background:#ffffff4d;transform:translateY(-1px)}.auth-title-section h1{font-size:28px;font-weight:700;margin-bottom:8px}.auth-title-section p{font-size:16px;opacity:.9}.auth-content{padding:32px}.auth-steps{justify-content:center;margin-bottom:32px}.auth-steps,.step-indicator{align-items:center;display:flex}.step-indicator{flex-direction:column;gap:8px}.step-number{font-size:16px;transition:all .3s ease}.step-indicator.active .step-number{background:#3b82f6;color:#fff}.step-indicator.completed .step-number{background:#10b981;color:#fff}.step-indicator:not(.active):not(.completed) .step-number{background:#f3f4f6;color:#9ca3af}.step-label{color:#6b7280;font-size:12px;font-weight:500;text-align:center}.step-indicator.active .step-label{color:#3b82f6}.step-indicator.completed .step-label{color:#10b981}.step-line{background:#e5e7eb;height:2px;margin:0 16px;width:60px}.auth-form-section{display:flex;flex-direction:column;gap:24px}.form-step h2{color:#1f2937;font-size:20px;font-weight:600;margin-bottom:24px;text-align:center}.password-input-container{align-items:center;display:flex;position:relative}.password-input-container .form-input{padding-right:48px}.password-toggle{align-items:center;background:none;border:none;border-radius:4px;color:#8b5a83;cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:12px;transition:all .2s ease}.password-toggle:hover{background:#cb9cc41a;color:#4a1c40}.password-toggle:focus{box-shadow:0 0 0 2px #cb9cc433;outline:none}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr;margin-bottom:20px}@media (max-width:768px){.form-grid{gap:16px;grid-template-columns:1fr}}.form-group{gap:8px}.form-label{align-items:center;display:flex;gap:8px}.form-input{background:#fff;transition:all .2s ease}.form-input:focus{box-shadow:0 0 0 3px #3b82f61a}.form-input::placeholder{color:#9ca3af}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;padding:12px 16px;text-align:center}.auth-actions{display:flex;flex-direction:column;gap:12px}.btn{align-items:center;display:flex;justify-content:center;text-decoration:none}.btn-primary:hover:not(.btn-disabled){background:#2563eb;box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.btn-disabled{box-shadow:none!important;cursor:not-allowed;opacity:.6;transform:none!important}.auth-footer{border-top:1px solid #e5e7eb;padding-top:24px;text-align:center}.auth-footer p{color:#6b7280;margin:0}.auth-link{color:#3b82f6;font-weight:600}.auth-link:hover{text-decoration:underline}.auth-icon{color:#3b82f6;display:flex;justify-content:center;margin-bottom:24px}.terms-checkbox{align-items:center;display:flex;gap:8px}.terms-checkbox input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;height:16px;margin:0;width:16px}.terms-checkbox label{color:#374151;cursor:pointer;font-size:14px;line-height:1.4}.signup-page{display:flex;flex-direction:column;margin:50px auto;max-width:350px}.onboarding-nav-controls{display:flex;flex-direction:column;justify-content:center;margin-top:15px}.onboarding-nav-button{background-color:#3fcf8e;border:1px solid #34b27b;border-radius:4px;color:#fff;cursor:pointer;font-size:15px;padding:10px;width:100%}.onboarding-nav-button:hover{background-color:#34b27b;border-radius:4px;width:100%}.onboarding-back-button{background:none;border:none;color:#4c4c4c;cursor:pointer;font-size:15px;margin-top:10px;text-decoration:underline}.onboarding-input{border:1px solid #d3d3d3;border-radius:4px;margin-bottom:10px;padding:10px 15px}.onboarding-input:focus,.onboarding-input:focus-visible{border-color:grey}.onboarding-label{color:grey;font-size:14px;margin-bottom:8px}.landing-page-main-content{align-items:center;display:flex;flex-direction:column;margin-top:50px}.landing-page-header{display:flex;justify-content:flex-end;width:100%}.page-title{font-size:48px;font-weight:700}.product-description{font-size:24px}.get-started-button:hover{text-decoration:underline}.get-started-button{background-color:#000;border-radius:20px;color:#fff;margin-top:25px;padding:8px 12px;text-decoration:none}.login-link{color:#000;font-size:18px;margin:20px}.landing-page-illustration{margin-top:20px;max-width:800px;width:100%}.form-validation-error{color:red;font-size:12px}.signup-success-title{font-size:36px}.signup-success-subtitle{font-size:24px}.signup-success-page{align-items:center;display:flex;flex-direction:column;margin:200px auto}.onboarding-nav-button-disabled{opacity:.8;pointer-events:none}.invalid-onboarding-field{color:red}.carousel-container,.character-image-carousel{height:100%;position:relative;width:100%}.carousel-container{display:flex;flex-direction:column;outline:none}.carousel-container:focus{border-radius:inherit;outline:2px solid var(--color-accent);outline-offset:2px}.carousel-container:focus .carousel-arrow,.carousel-container:focus .carousel-dots{opacity:1;visibility:visible}.image-container{background:var(--color-background);overflow:hidden}.character-image,.image-container{border-radius:inherit;height:100%;position:relative;width:100%}.character-image{object-fit:cover;object-position:top;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1}.character-image.transitioning{opacity:.8;transform:scale(1.02)}.avatar-placeholder{border-radius:inherit;font-size:24px;left:0;position:absolute;top:0;z-index:1}.carousel-arrow{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:none;border-radius:50%;box-shadow:var(--shadow-sm);color:var(--color-text-primary);cursor:pointer;display:flex;height:32px;justify-content:center;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);visibility:hidden;width:32px;z-index:10}.carousel-arrow:hover{background:#fff;box-shadow:var(--shadow-md);transform:translateY(-50%) scale(1.1)}.carousel-arrow:active{transform:translateY(-50%) scale(.95)}.carousel-arrow-left{left:8px}.carousel-arrow-right{right:8px}.character-image-carousel:hover .carousel-arrow{opacity:1;visibility:visible}.carousel-dots{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0000001a;border-radius:12px;bottom:8px;display:flex;gap:6px;left:50%;opacity:0;padding:6px 10px;position:absolute;transform:translateX(-50%);transition:all .3s cubic-bezier(.4,0,.2,1);visibility:hidden;z-index:10}.character-image-carousel:hover .carousel-dots{opacity:1;visibility:visible}.carousel-dot{background:#ffffff80;border:none;border-radius:50%;cursor:pointer;height:6px;padding:0;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:6px}.carousel-dot:hover{background:#fffc;transform:scale(1.2)}.carousel-dot.active{background:#fff;border-radius:3px;box-shadow:0 2px 4px #0003;width:16px}.discover-character-carousel{border-radius:12px}.discover-character-carousel .avatar-placeholder{border-radius:12px;font-size:32px}.dashboard-character-carousel{border-radius:12px}.dashboard-character-carousel .avatar-placeholder{border-radius:12px;font-size:28px}.character-card-carousel{border-radius:8px}.character-card-carousel .avatar-placeholder{background:linear-gradient(135deg,#000,#333);border-radius:8px;font-size:64px;font-weight:300;letter-spacing:-.02em}.character-card-carousel .character-image{border-radius:8px}.chat-character-carousel .avatar-placeholder{display:none}.chat-character-carousel .character-image{background:#f8fafc;border-radius:16px;object-fit:contain;object-position:center}.chat-character-carousel .carousel-arrow{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2}.chat-character-carousel .carousel-dots{background:#0003}@media (max-width:768px){.carousel-arrow{background:#fffc;height:28px;opacity:1;visibility:visible;width:28px}.carousel-arrow-left{left:6px}.carousel-arrow-right{right:6px}.carousel-dots{bottom:6px;opacity:1;padding:4px 8px;visibility:visible}.carousel-dot{height:5px;width:5px}.carousel-dot.active{width:12px}.character-card-carousel .avatar-placeholder{font-size:48px}.discover-character-carousel .avatar-placeholder{font-size:24px}.dashboard-character-carousel .avatar-placeholder{font-size:20px}.chat-character-carousel .avatar-placeholder{font-size:32px}}@media (pointer:coarse){.carousel-arrow,.carousel-dots{opacity:1;visibility:visible}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.character-image{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}.character-image{animation:fadeIn .3s cubic-bezier(.4,0,.2,1)}.carousel-arrow:focus,.carousel-dot:focus{outline:2px solid var(--color-accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.carousel-arrow,.carousel-dot,.carousel-dots,.character-image{animation:none;transition:none}.character-image.transitioning{opacity:1;transform:none}}@media (prefers-color-scheme:dark){.carousel-arrow{background:#000c;color:#fff}.carousel-arrow:hover{background:#000000e6}.carousel-dots{background:#ffffff1a}}.character-image[src=""]{background:var(--color-border);position:relative}.character-image[src=""]:after{animation:spin 1s linear infinite;border-top:2px solid var(--color-border-hover);border:2px solid var(--color-border-hover);border-radius:50%;border-top-color:var(--color-accent);content:"";height:20px;left:50%;margin:-10px 0 0 -10px;position:absolute;top:50%;width:20px}.dashboard-page{margin:0 auto;max-width:1200px;padding:40px 20px}.dashboard-header{margin-bottom:40px}.welcome-section{margin-bottom:32px}.welcome-section h1{color:var(--color-text-primary);font-family:var(--font-heading);font-size:36px;font-weight:500;letter-spacing:-.025em;margin-bottom:12px}.welcome-section p{color:var(--color-text-secondary);font-family:var(--font-body);font-size:18px;line-height:1.6}.quick-actions{display:flex;flex-wrap:wrap;gap:16px}.dashboard-content{display:flex;flex-direction:column;gap:48px}.dashboard-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-sm);padding:32px;transition:all .3s ease}.dashboard-section:hover{box-shadow:var(--shadow-md)}.getting-started{background:var(--gradient-primary);border:none;color:#fff}.getting-started-content h2{color:#fff;font-family:var(--font-heading);font-size:32px;font-weight:500;letter-spacing:-.025em;margin-bottom:32px;text-align:center}.steps{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.step{align-items:flex-start;display:flex;gap:16px;text-align:left}.step-number{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #ffffff1a;border-radius:50%;display:flex;flex-shrink:0;font-family:var(--font-body);font-size:18px;font-weight:600;height:40px;justify-content:center;width:40px}.step-content h3{color:#fff;font-family:var(--font-heading);font-size:20px;font-weight:500;margin-bottom:8px}.step-content p{color:#ffffffd9;font-family:var(--font-body);line-height:1.6}.landing-page{background:var(--color-background);min-height:100vh}.hero-section{background:linear-gradient(135deg,var(--color-surface) 0,var(--color-background) 100%);color:var(--color-text-primary);margin:0 auto;max-width:1200px;overflow:hidden;padding:50px 40px 20px;position:relative;text-align:center}.hero-section:before{background:radial-gradient(circle at 30% 20%,#1e2a4705 0,#0000 50%),radial-gradient(circle at 70% 80%,#d4af3708 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.hero-content{position:relative;z-index:1}.hero-content h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-text-primary) 0,var(--color-primary) 100%);-webkit-background-clip:text;background-clip:text;color:var(--color-text-primary);font-family:var(--font-heading);font-size:72px;font-weight:400;letter-spacing:-.03em;line-height:1.1;margin-bottom:24px}.hero-content p{color:var(--color-text-secondary);font-family:var(--font-body);font-size:18px;font-weight:400;letter-spacing:.01em;line-height:1.5;margin-bottom:36px;margin-left:auto;margin-right:auto;max-width:900px}.hero-actions{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:36px}.btn-primary{background:var(--gradient-primary);border:none;border-radius:10px;box-shadow:var(--shadow-md);cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:500;letter-spacing:.025em;overflow:hidden;padding:18px 36px;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.btn-primary:hover:before{left:100%}.btn-primary:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-secondary{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-sm);color:var(--color-text-secondary);cursor:pointer;font-family:var(--font-body);font-size:16px;font-weight:500;letter-spacing:.025em;overflow:hidden;padding:18px 36px;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-secondary:before{background:linear-gradient(90deg,#0000,#1e2a470d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.btn-secondary:hover:before{left:100%}.btn-secondary:hover{background:var(--color-background);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);color:var(--color-text-primary);transform:translateY(-1px)}.action-button{font-size:16px}.action-button.large{font-size:18px;padding:16px 32px}.action-button.creator{background:var(--gradient-accent);border:none;box-shadow:var(--shadow-md);color:var(--color-primary);font-weight:600;overflow:hidden;position:relative}.action-button.creator:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.value-props{grid-gap:36px;background:var(--color-surface);border-top:1px solid var(--color-border);display:grid;gap:36px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin:0 auto;max-width:1200px;padding:60px 40px;position:relative}.value-props:before{background:radial-gradient(circle at 20% 80%,#d4af3705 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.value-prop{border-radius:12px;padding:24px;position:relative;text-align:left;transition:all .3s ease;z-index:1}.value-prop:hover{background:#1e2a4705;transform:translateY(-4px)}.value-prop h3{color:var(--color-text-primary);font-family:var(--font-heading);font-size:24px;font-weight:500;letter-spacing:-.015em;margin-bottom:16px}.value-prop p{color:var(--color-text-secondary);font-family:var(--font-body);font-size:16px;font-weight:400;line-height:1.6}.preview-section{background:var(--color-background);border-top:1px solid var(--color-border);padding:60px 40px;text-align:center}.preview-section h2{color:var(--color-text-primary);font-family:var(--font-heading);font-size:42px;font-weight:400;letter-spacing:-.025em;margin-bottom:36px}.characters-preview{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));margin:0 auto 36px;max-width:1200px;padding:0 20px}.character-preview{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;justify-content:space-between;min-height:260px;overflow:hidden;padding:24px 20px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.character-preview:before{background:linear-gradient(135deg,#0000,#1e2a4703);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.character-preview:hover:before{opacity:1}.character-preview:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-8px)}.character-preview .character-avatar{border-radius:50%;box-shadow:var(--shadow-sm);height:80px;margin:0 auto 20px;overflow:hidden;width:80px}.character-preview .character-avatar img{height:100%;object-fit:cover;width:100%}.character-preview .avatar-placeholder{align-items:center;background:var(--gradient-primary);color:#fff;display:flex;font-family:var(--font-body);font-size:28px;font-weight:600;height:100%;justify-content:center;width:100%}.character-preview h4{color:var(--color-text-primary);font-family:var(--font-heading);font-size:22px;font-weight:500;letter-spacing:-.015em;margin-bottom:12px}.character-preview p{color:var(--color-text-secondary);flex-grow:1;font-family:var(--font-body);font-size:15px;line-height:1.6;margin-bottom:16px}.character-preview .action-button{align-self:center;margin-top:auto}.preview-cta{margin-top:48px}@media (max-width:768px){.characters-preview{gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:0 auto 36px;padding:0 16px}}@media (max-width:480px){.characters-preview{gap:20px;grid-template-columns:1fr;margin:0 auto 32px;padding:0 12px}}@media (max-width:768px){.dashboard-page{padding:24px 16px}.welcome-section h1{font-size:28px}.welcome-section p{font-size:16px}.dashboard-section{padding:24px}.steps{gap:24px;grid-template-columns:1fr}.quick-actions{flex-direction:column}.hero-section{padding:20px 20px 12px}.hero-content h1{font-size:26px;line-height:1.2;margin-bottom:10px}.hero-content p{font-size:14px;margin-bottom:12px}.hero-actions{align-items:center;flex-direction:column}.characters-section{margin-top:0;padding:0 16px}.value-props{gap:28px;grid-template-columns:1fr}.preview-section,.value-props{padding:45px 24px}.preview-section h2{font-size:32px;margin-bottom:28px}}.conversations-grid{grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:20px}.conversation-card{align-items:center;background:var(--color-background);border:1px solid var(--color-border);border-radius:12px;color:var(--color-text-primary);display:flex;gap:16px;overflow:hidden;padding:16px;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.conversation-card:before{background:linear-gradient(135deg,#0000,#1e2a4705);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.conversation-card:hover:before{opacity:1}.conversation-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.conversation-avatar{border-radius:50%;box-shadow:var(--shadow-sm);flex-shrink:0;height:48px;overflow:hidden;width:48px}.companion-profile-pic{height:100%;object-fit:cover;width:100%}.companion-placeholder{align-items:center;background:var(--gradient-primary);color:#fff;display:flex;font-family:var(--font-body);font-size:20px;font-weight:600;height:100%;justify-content:center;width:100%}.conversation-info{flex-grow:1;min-width:0}.conversation-title{color:var(--color-text-primary);font-family:var(--font-body);font-size:16px;font-weight:500;line-height:1.4;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-meta{align-items:center;display:flex;gap:8px}.conversation-date{color:var(--color-text-secondary);font-family:var(--font-body);font-size:12px;opacity:.7}.character-missing{background:#fef2f2;border-radius:4px;color:#dc2626;font-family:var(--font-body);font-size:11px;font-weight:500;padding:2px 6px}.section-header h2{font-size:24px;letter-spacing:-.015em}.see-all-link{border-radius:6px;color:var(--color-primary);padding:8px 16px;transition:all .2s ease}.see-all-link:hover{background:#1e2a470d;color:var(--color-primary)}.empty-state{color:var(--color-text-secondary);padding:40px 20px}.empty-state h3{color:var(--color-text-primary)}.empty-state p{line-height:1.5}.characters-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:20px}.character-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1)}.character-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg)}.character-avatar{height:200px}.character-info{padding:20px}.character-name{color:var(--color-text-primary);font-family:var(--font-heading);font-size:18px;font-weight:500;margin-bottom:8px}.character-description{-webkit-line-clamp:2;color:var(--color-text-secondary);font-family:var(--font-body);font-size:14px;margin-bottom:12px}.character-category{color:var(--color-primary);font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:.05em}@media (max-width:768px){.conversations-grid{gap:12px;grid-template-columns:1fr}.characters-grid{gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin-top:8px}}@media (max-width:480px){.conversation-card{gap:12px;padding:12px}.conversation-avatar{height:40px;width:40px}.companion-placeholder{font-size:16px}.conversation-title{font-size:14px}.characters-grid{gap:12px;grid-template-columns:1fr;margin-top:4px}.hero-section{padding:16px 16px 8px}.hero-content h1{font-size:24px;margin-bottom:8px}.hero-content p{font-size:13px;margin-bottom:8px}.characters-section{padding:0 12px}}.footer-link:hover{text-decoration:underline!important}.discover-page{margin:0 auto;max-width:1200px;padding:24px 20px}.discover-header{margin-bottom:24px;text-align:center}.discover-title{color:#000;font-size:32px;font-weight:300;letter-spacing:-.01em;margin-bottom:8px}.discover-subtitle{color:#666;font-size:16px;font-weight:300;line-height:1.4;margin:0 auto;max-width:500px}.discover-search{margin:0 auto 40px;max-width:500px}.search-input{border:1px solid #e5e5e5;border-radius:8px;box-sizing:border-box;font-size:15px;padding:12px 16px 12px 40px;transition:border-color .2s ease;width:100%}.search-input:focus{border-color:#000;outline:none}.discover-filters{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:32px}.filter-tag{background:#fff;border:1px solid #e5e5e5;border-radius:20px;color:#666;cursor:pointer;font-size:14px;font-weight:400;padding:8px 16px;transition:all .2s ease}.filter-tag:hover{background:#f8f8f8;border-color:#ccc}.filter-tag.active{background:#000;border-color:#000;color:#fff}.characters-grid{grid-gap:32px;gap:32px;margin:0 auto;max-width:1200px;padding:0 20px}.load-more-container{margin-top:40px;text-align:center}.load-more-button{background:#000;border:none;border-radius:8px;color:#fff;cursor:pointer;display:block;font-size:16px;font-weight:500;margin:48px auto 0;padding:16px 32px;transition:all .3s ease}.load-more-button:hover{background:#333;transform:translateY(-2px)}.load-more-button:disabled{background:#6b7280;cursor:not-allowed;transform:none}.discover-loading{align-items:center;color:#6b7280;display:flex;justify-content:center;padding:60px}.discover-empty{color:#6b7280;padding:60px 20px;text-align:center}.discover-empty h3{color:#374151;font-size:20px;margin-bottom:8px}.discover-empty p{font-size:16px;margin:0}.discover-controls{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px}.search-section{flex:1 1;min-width:300px}.search-input-container{align-items:center;display:flex;position:relative}.search-input-container svg{color:#9ca3af;left:12px;pointer-events:none;position:absolute}.search-input-container .search-input{border:2px solid #e5e7eb;border-radius:12px;box-sizing:border-box;font-size:16px;padding:16px 20px 16px 50px;transition:border-color .2s ease;width:100%}.filter-section{gap:16px}.filter-section,.sort-controls{align-items:center;display:flex}.sort-controls{color:#666;font-size:14px;gap:8px}.sort-controls label{align-items:center;display:flex;font-weight:500;gap:4px}.sort-controls select{background:#fff;border:1px solid #e5e5e5;border-radius:6px;font-size:14px;padding:8px 12px}.categories-section{margin-bottom:20px}.categories-scroll{-ms-overflow-style:none;display:flex;gap:8px;overflow-x:auto;padding:8px 0;scrollbar-width:none}.categories-scroll::-webkit-scrollbar{display:none}.category-chip{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:20px;color:#666;cursor:pointer;display:flex;flex-shrink:0;font-size:13px;font-weight:500;gap:6px;padding:8px 14px;transition:all .2s ease;white-space:nowrap}.category-chip:hover{background:#f8f8f8;border-color:#ccc}.category-chip.active{background:#000;border-color:#000;color:#fff}.category-icon{align-items:center;display:flex}.category-label{font-weight:600}.characters-section{margin-top:8px}.section-header{border-bottom:1px solid #f1f3f4;margin-bottom:20px;padding-bottom:8px}.section-header h2{color:#000;font-size:22px;font-weight:600;margin:0}.character-count{color:#666;font-size:14px;font-weight:500}.empty-state{color:#9ca3af;padding:60px 20px}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state h3{color:#4b5563;font-size:18px;font-weight:600;margin-bottom:8px}.empty-state p{font-size:14px;margin:0}@media (max-width:768px){.discover-page{padding:16px}.discover-header{margin-bottom:20px}.discover-title{font-size:28px;margin-bottom:6px}.discover-subtitle{font-size:15px}.discover-controls{align-items:stretch;flex-direction:column;gap:12px;margin-bottom:16px}.search-section{min-width:auto}.filter-section{justify-content:center}.categories-section{margin-bottom:16px}.characters-section{margin-top:0}.category-chip{font-size:12px;padding:6px 12px}.section-header{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:16px}.section-header h2{font-size:20px}.characters-grid{gap:24px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:0 16px}.load-more-button{font-size:15px;margin:32px auto 0;padding:14px 28px}}@media (max-width:480px){.discover-page{padding:12px}.discover-title{font-size:24px}.discover-subtitle,.search-input{font-size:14px}.search-input{padding:10px 14px 10px 36px}.categories-scroll{gap:6px;padding:6px 0}.category-chip{font-size:11px;padding:6px 10px}.characters-grid{gap:20px;grid-template-columns:1fr;padding:0 12px}}.modal-overlay{align-items:center!important;animation:fadeIn .2s ease-out;background-color:#0009!important;bottom:0!important;display:flex!important;height:100vh!important;justify-content:center!important;left:0!important;margin:0!important;padding:20px;position:fixed!important;right:0!important;top:0!important;width:100vw!important;z-index:9999!important}.modal-dialog{animation:slideIn .3s ease-out;background:#fff!important;border-radius:12px;box-shadow:0 25px 50px -12px #00000040!important;margin:auto!important;max-height:90vh;max-width:520px;overflow-y:auto;position:relative!important;transform:translateZ(0);width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px;padding:24px 24px 0}.modal-content{padding:0 24px}.modal-close{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;padding:4px;transition:all .2s ease}.modal-close:hover{background:#f3f4f6;color:#374151}.modal-close:disabled{cursor:not-allowed;opacity:.5}.modal-dialog-header{align-items:center;border-bottom:1px solid #d3d3d399;display:flex;font-size:22px;justify-content:space-between;margin-bottom:25px;padding-bottom:10px}.manage-subscription-dialog-label{color:#596c85}.modal-dialog-footer{border-top:1px solid #d3d3d399;display:flex;justify-content:center;padding:10px 0 5px}.modal-dialog-close-icon{cursor:pointer}.modal-dialog-line{border-bottom:1px solid #dce5f0;display:flex;justify-content:space-between;padding:10px}.cancel-subscription-modal{max-width:520px;width:90vw}.cancel-subscription-modal .modal-title-container{align-items:center;display:flex;gap:12px}.cancel-subscription-modal .warning-icon{color:#f59e0b}.cancel-subscription-modal .cancellation-warning{display:flex;flex-direction:column;gap:20px}.cancel-subscription-modal .queen-benefits-reminder{align-items:center;color:#374151;display:flex;font-weight:600;gap:8px;margin-bottom:8px}.cancel-subscription-modal .crown-icon{color:#d97706}.cancel-subscription-modal .benefits-list{background:#fef3c7;border-left:4px solid #f59e0b;border-radius:8px;list-style:none;margin:0;padding:16px 20px}.cancel-subscription-modal .benefits-list li{color:#92400e;font-weight:500;padding:4px 0 4px 20px;position:relative}.cancel-subscription-modal .benefits-list li:before{color:#dc2626;content:"✗";font-weight:700;left:0;position:absolute}.cancel-subscription-modal .billing-info{background:#f3f4f6;border-left:4px solid #6b7280;border-radius:8px;padding:16px}.cancel-subscription-modal .billing-info p{color:#374151;margin:0 0 8px}.cancel-subscription-modal .billing-info p:last-child{margin-bottom:0}.cancel-subscription-modal .fine-print{color:#6b7280;font-size:14px;font-style:italic}.cancel-subscription-modal .modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding:0 24px 24px}.cancel-subscription-modal .btn{border:none;border-radius:6px;cursor:pointer;font-weight:600;min-width:140px;padding:10px 20px;transition:all .2s ease}.cancel-subscription-modal .btn:disabled{cursor:not-allowed;opacity:.6}.cancel-subscription-modal .btn-secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.cancel-subscription-modal .btn-secondary:hover:not(:disabled){background:#e5e7eb}.cancel-subscription-modal .btn-danger{background:#dc2626;color:#fff}.cancel-subscription-modal .btn-danger:hover:not(:disabled){background:#b91c1c}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-page{background:#fff;flex-direction:column;height:calc(100vh - 77px);margin:0 auto;max-width:1400px;padding-top:10px}.chat-layout,.chat-page{display:flex;overflow:hidden}.chat-layout{flex:1 1;gap:24px;min-height:0}.guest-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0;font-size:13px;padding:8px 24px;text-align:center}.guest-banner-content p{margin:0}.guest-banner a{color:#fff;font-weight:600;text-decoration:underline}.guest-banner a:hover{text-decoration:none}.character-images-sidebar{background:linear-gradient(135deg,#f8fafc,#fff);border-right:1px solid #e5e7eb;display:flex;flex-direction:column;flex-shrink:0;min-height:0;order:1;overflow-y:auto;width:400px}.sidebar-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:16px;justify-content:flex-end;padding:24px}.character-image-container{display:block;flex:none;padding:8px 16px 0;width:100%}.character-name-display{padding:8px 16px 4px;text-align:center}.character-name-display h3{color:#1e293b;font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0}.character-title{color:#64748b;font-style:italic;font-weight:400}.chat-character-carousel{border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 8px 32px #0000001a;height:550px;margin-bottom:8px;max-width:100%;overflow:hidden;width:100%}.character-description{background:linear-gradient(135deg,#fafbfc,#f7f9fa);border:1px solid #e2e6ea;border-radius:14px;box-shadow:0 4px 12px #0000000a,inset 0 1px 0 #ffffffb3;margin:0 10px;max-height:140px;overflow-y:auto;padding:16px 40px;scrollbar-color:#cbd5e0 #0000;scrollbar-width:thin;transition:all .2s ease}.character-description p{word-wrap:break-word;color:#374151;font-size:13px;font-weight:400;letter-spacing:.02em;line-height:1.6;margin:0;overflow-wrap:break-word;text-align:left}.character-description::-webkit-scrollbar{width:6px}.character-description::-webkit-scrollbar-track{background:#0000;border-radius:3px}.character-description::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px;-webkit-transition:background .2s ease;transition:background .2s ease}.character-description::-webkit-scrollbar-thumb:hover{background:#a0aec0}.character-description:hover{box-shadow:0 6px 16px #0000000f,inset 0 1px 0 #fffc}.chat-area{display:flex;flex:2 1;flex-direction:column;min-height:0;min-width:0;order:2}.chat-header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(135deg,#fff,#fafbfc);border-bottom:1px solid #e1e7ef;box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005;height:64px;justify-content:space-between;min-height:64px;padding:12px 20px;position:sticky;top:0;z-index:100}.chat-header,.header-left{align-items:center;display:flex;flex-shrink:0}.header-left{height:100%;justify-content:flex-start;margin:0;padding:0;width:48px}.back-button-container{padding:0}.back-button,.back-button-container{align-items:center;display:flex;flex-shrink:0;margin:0}.back-button{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #d1d9e2;border-radius:16px;bottom:auto;box-shadow:0 1px 2px #0000000a,0 2px 4px #00000005;color:#475569;cursor:pointer;height:48px;justify-content:center;left:auto;padding:12px;position:static;right:auto;top:auto;transition:all .2s cubic-bezier(.4,0,.2,1);width:48px}@media (max-width:768px){.chat-layout{flex-direction:column}.character-images-sidebar{align-items:center;border-bottom:none;border-right:none;display:flex!important;flex-direction:row!important;flex-shrink:0;height:80px;order:1;padding:8px 12px;width:100%}.chat-area{order:2}.character-image-container{display:block!important;flex:0 0 auto;margin-right:12px;padding:0;width:55px}.chat-character-carousel{border-radius:50%;display:block!important;height:55px!important;margin-bottom:0;width:55px!important}.character-name-display{display:block!important;flex:1 1;padding:0;text-align:left}.character-name-display h3{font-size:16px}.character-description{display:none}.sidebar-header{padding:16px}.sidebar-header h3{font-size:18px}.chat-messages{min-height:0;padding-bottom:8px}.chat-input{padding:8px 12px}.chat-header,.guest-banner,.input-footer{display:none}}@media (min-width:481px) and (max-width:768px){.character-images-sidebar{align-items:center;border-bottom:none;display:flex;height:120px}.character-image-container{flex:0 0 auto;margin-right:16px;padding:0;width:80px}.chat-character-carousel{border-radius:50%;height:80px;margin-bottom:0;width:80px}.character-name-display{flex:1 1;padding:0;text-align:left}.character-name-display h3{font-size:17px}.character-description{display:none}.chat-messages{min-height:0}}.menu-dropdown{box-shadow:0 4px 16px #0000001a;min-width:180px;top:calc(100% + 8px);transform:translateY(-8px);transition:all .2s ease;z-index:20}.character-images-sidebar .menu-dropdown{left:auto;right:0}.back-button:hover{background:linear-gradient(135deg,#fff,#fff);border-color:#b8c5d1;box-shadow:0 2px 4px #0000000f,0 4px 8px #00000008;color:#334155}.back-button:active{box-shadow:0 1px 2px #0000000a,0 2px 4px #00000005}.character-info{align-items:center;flex:1 1;height:100%;justify-content:center;min-width:0;padding:0 24px}.character-details{max-width:400px;text-align:center}.character-details h2{color:#1e293b;letter-spacing:-.01em;line-height:1.3;margin:0}.avatar-placeholder{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:50%;font-size:18px}.character-avatar:after{background:#10b981;border:2px solid #fff;border-radius:50%;bottom:2px;box-shadow:0 1px 3px #0003;content:"";height:12px;position:absolute;right:2px;width:12px}.character-details{flex:1 1;min-width:0}.character-details h2{color:#1f2937;font-size:20px;font-weight:600;margin:0 0 4px}.character-details h2,.character-details p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-details p{color:#64748b;font-size:14px;margin:0}.header-right{height:100%;justify-content:flex-end}.header-right,.menu-container{align-items:center;display:flex;flex-shrink:0}.menu-container{position:relative}.menu-button{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #d1d9e2;border-radius:16px;box-shadow:0 1px 2px #0000000a,0 2px 4px #00000005;color:#475569;cursor:pointer;display:flex;flex-shrink:0;height:48px;justify-content:center;margin:0;padding:12px;transition:all .2s cubic-bezier(.4,0,.2,1);width:48px}.menu-button:hover{background:linear-gradient(135deg,#fff,#fff);border-color:#b8c5d1;box-shadow:0 2px 4px #0000000f,0 4px 8px #00000008;color:#334155;transform:translateY(-1px)}.menu-button:active{box-shadow:0 1px 2px #0000000a,0 2px 4px #00000005;transform:translateY(0)}.menu-dropdown{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 25px #00000026;margin-top:8px;min-width:200px;opacity:0;pointer-events:none;position:absolute;right:0;top:100%;transform:translateY(-10px);transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1000}.menu-dropdown.open{opacity:1;pointer-events:all;transform:translateY(0)}.menu-item{align-items:center;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:14px;margin:4px;padding:12px 16px;text-decoration:none;transition:all .2s ease}.menu-item:hover{background:#f3f4f6;color:#1f2937}.menu-item svg{flex-shrink:0;margin-right:12px}.menu-divider{background:#e5e7eb;height:1px;margin:4px 0}.chat-messages{background:linear-gradient(135deg,#fafafa,#fff);display:flex;flex:1 1;flex-direction:column;gap:20px;min-height:0;overflow-y:auto;padding:16px 24px}.message{animation:fadeInUp .3s ease-out;display:flex;gap:12px;max-width:85%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;flex-direction:row-reverse}.chat-message-avatar{border-radius:50%;flex-shrink:0;height:36px;object-fit:cover;width:36px}.message-content{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:20px 20px 20px 6px;box-shadow:0 2px 8px #0000000a;color:#1e293b;font-size:15px;line-height:1.6;padding:16px 20px;position:relative}.message.user .message-content{background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid #2563eb;border-radius:20px 20px 6px 20px;box-shadow:0 4px 12px #3b82f633;color:#fff}.chat-input{background:linear-gradient(135deg,#fff,#f8fafc);border-top:1px solid #e5e7eb;bottom:0;box-shadow:0 -2px 8px #0000000a;flex-shrink:0;padding:12px 24px;position:sticky;z-index:10}.input-container{align-items:flex-end;background:#fff;border:2px solid #e2e8f0;border-radius:28px;box-shadow:0 4px 16px #0000000f;display:flex;gap:12px;max-width:100%;padding:6px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.input-container:focus-within{background:#fff;border-color:#3b82f6;box-shadow:0 8px 24px #3b82f626;transform:translateY(-1px)}.message-input{background:#0000;border:none;border-radius:22px;color:#1e293b;flex:1 1;font-family:inherit;font-size:15px;font-weight:400;line-height:1.5;max-height:120px;min-height:48px;outline:none;padding:14px 18px;resize:none}.message-input::placeholder{color:#9ca3af;font-weight:400}.message-input:disabled{color:#9ca3af;cursor:not-allowed}.message-input:disabled::placeholder{color:#d1d5db}.send-button{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:50%;box-shadow:0 2px 8px #3b82f64d;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .3s ease;width:44px}.send-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.send-button:active:not(:disabled){box-shadow:0 2px 6px #3b82f64d;transform:translateY(0)}.send-button:disabled{background:#e5e7eb;box-shadow:none;color:#9ca3af;cursor:not-allowed;transform:none}.send-button.typing{animation:pulse 1.5s infinite;background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.input-container:focus-within:before{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:26px;bottom:-2px;content:"";left:-2px;opacity:.1;position:absolute;right:-2px;top:-2px;transition:opacity .3s ease;z-index:-1}.input-container.disabled{opacity:.6;pointer-events:none}.chat-input:hover .input-container:not(.limit-reached):not(:focus-within){box-shadow:0 4px 16px #00000014;transform:translateY(-1px)}.chat-input{animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.input-container:hover:not(:focus-within){border-color:#cbd5e1;box-shadow:0 3px 10px #0000000f}.typing-indicator{align-items:center;display:flex;gap:4px;padding:4px 8px}.typing-indicator span{animation:jiggle 1.5s ease-in-out infinite;background:#9ca3af;border-radius:50%;height:8px;width:8px}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes jiggle{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-2px)}}.input-footer{align-items:center;color:#9ca3af;display:flex;font-size:12px;justify-content:space-between;padding:8px 20px 0}.character-count{transition:color .2s ease}.character-count.warning{color:#f59e0b}.character-count.danger{color:#ef4444}.input-hint{color:#9ca3af;font-size:11px}.input-container.limit-reached{background:#fef2f2;border-color:#ef4444}.input-container.limit-reached:focus-within{border-color:#ef4444;box-shadow:0 4px 12px #ef444426}.input-container,.message-input,.send-button{transition:all .3s cubic-bezier(.4,0,.2,1)}@media (max-width:640px){.chat-header,.guest-banner{display:none}.chat-messages{padding-bottom:4px}.chat-input{padding:8px 16px}.input-container{border-radius:20px}.message-input{font-size:16px;padding:12px 16px}.send-button{height:40px;width:40px}.input-footer{display:none}.character-images-sidebar{align-items:center;display:flex!important;flex-direction:row!important;flex-shrink:0;height:70px;padding:6px 10px}.character-image-container{display:block!important;margin-right:10px;width:50px}.chat-character-carousel{display:block!important;height:50px!important;width:50px!important}.character-name-display{display:block!important}.character-name-display h3{font-size:15px}}.chat-loading{color:#6b7280}.chat-error,.chat-loading{align-items:center;display:flex;justify-content:center;padding:40px}.chat-error{color:#dc2626;text-align:center}.input-container.full-width{padding:4px}.input-container.full-width .message-input{border-radius:18px;margin:0;padding:14px 18px}.message-input.clickable-signup{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border:2px dashed #3b82f6;color:#3b82f6;cursor:pointer!important;font-weight:500}.message-input.clickable-signup::placeholder{color:#3b82f6;font-weight:600}.message-input.clickable-signup:hover{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#1d4ed8;box-shadow:0 4px 12px #3b82f626;transform:translateY(-1px)}.character-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 2px 8px #0000000a;height:-moz-fit-content;height:fit-content;overflow:hidden;position:relative;transition:all .3s ease}.character-card:hover{border-color:#000;box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.character-link{color:inherit;display:block;height:100%;text-decoration:none}.character-avatar{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;height:340px;overflow:hidden;position:relative;width:100%}.character-avatar img{border-radius:8px;height:100%;object-fit:cover;object-position:top;transition:transform .3s ease;width:100%}.character-card:hover .character-avatar img{transform:scale(1.05)}.avatar-placeholder{background:linear-gradient(135deg,#000,#333);font-size:64px;font-weight:300;letter-spacing:-.02em}.character-content{display:flex;flex-direction:column;min-height:200px;padding:1px}.character-info{display:flex;flex-direction:column;height:170px;padding:5px}.character-name{color:#000;font-size:20px;font-weight:700;letter-spacing:-.01em;line-height:1.3;margin:0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-category{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);border:1px solid #e5e7eb;border-radius:12px;color:#374151;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:12px;padding:4px 10px;text-transform:uppercase;width:-moz-fit-content;width:fit-content}.character-description{-webkit-line-clamp:6;-webkit-box-orient:vertical;word-wrap:break-word;background:none;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;color:#374151;display:-webkit-box;flex:1 1;font-size:13px;font-weight:400;letter-spacing:.01em;line-height:1.5;margin:5px 0 3px;max-height:117px;overflow:hidden;overflow-wrap:break-word;padding:1px;text-overflow:ellipsis;width:100%}.character-stats{border-top:1px solid #f1f3f4;display:flex;flex-shrink:0;gap:16px;justify-content:space-between;margin-top:16px;padding-top:12px}.stat{align-items:center;color:#6b7280;display:flex;font-size:12px;font-weight:500;gap:5px}.stat svg{color:#9ca3af;flex-shrink:0}.like-button{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid #ffffff4d;border-radius:50%;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:all .3s ease;width:36px;z-index:10}.like-button:hover{background:#ef44441a;border-color:#ef4444;color:#ef4444;transform:scale(1.1)}@media (max-width:768px){.character-avatar{height:220px}.character-content{min-height:160px;padding:1px}.character-name{font-size:18px;margin-bottom:6px}.character-description{-webkit-line-clamp:5;font-size:12px;line-height:1.5;margin:12px 0 auto;max-height:90px;padding:1px;width:100%}.character-stats{gap:12px;margin-top:12px;padding-top:10px}.stat{font-size:11px}.like-button{height:32px;right:12px;top:12px;width:32px}}@media (max-width:480px){.character-avatar{height:200px}.character-content{min-height:140px;padding:1px}.character-name{font-size:16px}.character-description{-webkit-line-clamp:3;font-size:11px;line-height:1.4;margin:10px 0 auto;max-height:46px;padding:1px;width:100%}}.profile-page{margin:0 auto;max-width:800px;padding:24px}.profile-header{background:#fff;border-radius:16px;box-shadow:0 4px 16px #0000001a;margin-bottom:32px;padding:32px;text-align:center}.profile-avatar{border:4px solid #e5e7eb;border-radius:50%;height:120px;margin:0 auto 24px;object-fit:cover;overflow:hidden;position:relative;width:120px}.profile-avatar img{height:100%;object-fit:cover;width:100%}.profile-avatar .avatar-placeholder{align-items:center;background:var(--gradient-primary);border-radius:50%;color:#fff;display:flex;font-family:var(--font-body);font-size:48px;font-weight:600;height:100%;justify-content:center;width:100%}.profile-name{color:#1f2937;font-size:28px;font-weight:700;margin-bottom:8px}.profile-name-section{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.profile-name-section h1{color:#1f2937;font-size:28px;font-weight:700;margin:0}.role-badge{align-items:center;background:linear-gradient(135deg,#cb9cc4,#e6b3d6);border-radius:20px;box-shadow:0 4px 12px #00000026;color:#fff;display:flex;font-size:12px;font-weight:600;gap:4px;letter-spacing:.5px;padding:6px 16px;text-transform:uppercase}.profile-email{color:#6b7280;font-size:16px;margin-bottom:16px}.profile-bio{color:#4b5563;font-size:14px;font-style:italic;line-height:1.5;margin-bottom:16px}.edit-profile-button{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:6px;padding:8px 16px;transition:all .2s ease}.edit-profile-button:hover{background:#e5e7eb}.create-actions{display:flex;gap:12px}.generate-button{align-items:center;background:linear-gradient(135deg,#cb9cc4,#e6b3d6 50%,#f2c8e6);border:none;border-radius:12px;box-shadow:0 6px 20px #cb9cc44d;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;overflow:hidden;padding:10px 20px;position:relative;text-decoration:none;text-shadow:0 1px 2px #4a1c4033;transition:all .3s cubic-bezier(.4,0,.2,1)}.generate-button:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.generate-button:hover{box-shadow:0 8px 24px #cb9cc466;transform:translateY(-2px)}.generate-button:hover:before{left:100%}.empty-actions{gap:12px}.empty-actions,.profile-stats{display:flex;flex-wrap:wrap;justify-content:center}.profile-stats{gap:40px}.profile-stat{text-align:center}.profile-stat-number{color:#3b82f6;display:block;font-size:24px;font-weight:700}.profile-stat-label{color:#6b7280;font-size:14px;margin-top:4px}.profile-section{background:#fff;border-radius:16px;box-shadow:0 4px 16px #0000001a;margin-bottom:24px;padding:32px}.profile-section-title{align-items:center;color:#1f2937;display:flex;font-size:20px;font-weight:600;justify-content:space-between;margin-bottom:24px}.profile-form{grid-gap:20px;display:grid;gap:20px}.profile-form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}@media (max-width:640px){.profile-form-row{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column}.form-label{color:#374151;font-size:14px;font-weight:600;margin-bottom:8px}.form-input{border:2px solid #e5e7eb;border-radius:8px;font-size:16px;padding:12px 16px;transition:border-color .2s ease}.form-input:focus{border-color:#3b82f6;outline:none}.form-input:disabled{background:#f9fafb;color:#6b7280}.profile-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary{background:#f3f4f6;border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background:#e5e7eb}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.my-characters-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-top:20px}.profile-loading{color:#6b7280}.profile-error,.profile-loading{align-items:center;display:flex;justify-content:center;padding:60px}.profile-error{color:#dc2626;text-align:center}.subscription-info{margin-top:20px}.subscription-active,.subscription-inactive{background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;padding:24px}.subscription-inactive{text-align:center}.subscription-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:14px;font-weight:600;gap:8px;margin-bottom:20px;padding:8px 16px}.subscription-badge.queen{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.subscription-details{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.subscription-status{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px}.status-label{color:#64748b}.status-label,.status-value{font-weight:600}.status-value.active{color:#16a34a}.status-value.cancelled{color:#dc2626}.cancellation-warning{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;grid-column:1/-1;margin:16px 0;padding:16px}.warning-text{align-items:flex-start;color:#dc2626;display:flex;font-size:14px;font-weight:500;gap:8px}.warning-text:before{content:"⚠️";flex-shrink:0;font-size:16px;margin-top:-1px}.subscription-benefits{margin-bottom:20px}.subscription-benefits h4{color:#1e293b;font-weight:600;margin:0 0 12px}.subscription-benefits ul{list-style-type:disc;margin:0;padding-left:20px}.subscription-benefits li{color:#475569;margin-bottom:8px}.subscription-actions{border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:8px;padding-top:20px}.cancel-subscription-btn{align-items:center;align-self:flex-start;display:flex;gap:8px;pointer-events:auto;position:relative;z-index:10}.cancellation-note{color:#64748b;font-size:12px;font-style:italic}.free-plan-info h3{color:#1e293b;margin:0 0 12px}.free-plan-info p{color:#475569;margin:0 0 16px}.free-plan-info ul{list-style-type:disc;margin:0 0 20px;padding-left:20px;text-align:left}.free-plan-info li{color:#475569;margin-bottom:8px}.upgrade-button{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:16px;font-weight:600;gap:8px;justify-content:center;margin:0 auto;padding:12px 24px;transition:all .2s ease}.upgrade-button:hover{box-shadow:0 4px 12px #d977064d;transform:translateY(-1px)}.knowledge-hub-page{font-family:var(--font-body);line-height:1.6;margin:0 auto;max-width:800px;padding:40px 20px}.knowledge-hub-header{border-bottom:2px solid var(--color-border);margin-bottom:60px;padding-bottom:40px;text-align:center}.knowledge-hub-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-text-primary) 0,var(--color-primary) 100%);-webkit-background-clip:text;background-clip:text;color:var(--color-text-primary);font-family:var(--font-heading);font-size:48px;font-weight:500;letter-spacing:-.025em;margin-bottom:16px}.knowledge-hub-header p{color:var(--color-text-secondary);font-size:20px;font-weight:400;margin:0}.knowledge-hub-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-sm);padding:48px}.faq-item{border-bottom:1px solid var(--color-border);margin-bottom:36px;padding-bottom:32px}.faq-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.faq-question{color:var(--color-text-primary);cursor:pointer;font-family:var(--font-heading);font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.3;margin-bottom:16px;transition:color .3s ease}.faq-question:hover{color:var(--color-primary)}.faq-answer{margin-left:0}.faq-answer p{color:var(--color-text-secondary);font-size:16px;font-weight:400;line-height:1.7;margin:0}.faq-section h2{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);font-family:var(--font-heading);font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.3;margin-bottom:16px;margin-top:48px;padding-bottom:8px}.faq-section h2:first-child{margin-top:0}.faq-section p{color:var(--color-text-secondary);font-size:16px;font-weight:400;line-height:1.7;margin-bottom:32px}.faq-section h3{color:var(--color-text-primary);font-family:var(--font-heading);font-size:20px;font-weight:500;letter-spacing:-.01em;margin-bottom:12px;margin-top:36px}@media (max-width:768px){.knowledge-hub-page{padding:24px 16px}.knowledge-hub-header{margin-bottom:40px;padding-bottom:24px}.knowledge-hub-header h1{font-size:36px;margin-bottom:12px}.knowledge-hub-header p{font-size:18px}.knowledge-hub-content{border-radius:12px;padding:32px 24px}.faq-section h2{font-size:22px;margin-bottom:14px;margin-top:36px}.faq-section p{font-size:15px;margin-bottom:28px}.faq-section h3{font-size:18px;margin-bottom:10px;margin-top:28px}}@media (max-width:480px){.knowledge-hub-page{padding:20px 12px}.knowledge-hub-content{padding:24px 20px}.knowledge-hub-header h1{font-size:32px}.knowledge-hub-header p{font-size:16px}.faq-section h2{font-size:20px;margin-top:32px}.faq-section p{font-size:14px}}.navbar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffffa;border-bottom:1px solid var(--color-border);box-shadow:0 1px 0 #0000000f;position:sticky;top:0;transition:all .3s ease;z-index:1000}.nav-container{align-content:center;box-sizing:border-box;height:80px;justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 40px}.nav-brand,.nav-brand-section,.nav-container{align-items:center;display:flex}.nav-brand{border-radius:12px;gap:16px;padding:8px 12px;text-decoration:none;transition:all .3s ease}.nav-brand:hover{background:#00000005;transform:translateY(-1px)}.brand-icon{align-items:center;background:var(--color-primary);border-radius:8px;box-shadow:var(--shadow-sm);color:#fff;display:flex;justify-content:center;padding:12px}.brand-content{align-items:flex-start;display:flex;flex-direction:column;gap:-8px}.brand-name{color:#000;font-family:var(--font-heading);font-size:32px;font-weight:400;letter-spacing:-.8px;margin:0}.brand-tagline{color:#d4af37;font-family:var(--font-body);font-size:9px;font-weight:400;letter-spacing:2px;opacity:1;text-transform:uppercase}.nav-links-desktop{align-items:center;display:flex;gap:8px}.nav-links-desktop svg{stroke:var(--color-primary)}.nav-link{border-bottom:2px solid #0000;border-radius:0;overflow:hidden;padding:16px 24px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-link,.nav-link-content{align-items:center;display:flex;position:relative}.nav-link-content{gap:8px;z-index:2}.nav-link-label{color:var(--color-text-secondary);font-family:var(--font-body);font-size:15px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;transition:color .3s ease}.nav-link:hover .nav-link-label{color:var(--color-primary)}.nav-link:hover{background:#0000;border-bottom-color:var(--color-primary);transform:none}.nav-link.active{background:#0000;border-bottom:2px solid var(--color-primary)}.nav-link.active .nav-link-label{color:var(--color-primary);font-weight:500}.nav-link.special{background:#0000;border:2px solid var(--color-primary);border-radius:2px;box-shadow:none;color:var(--color-primary);position:relative}.nav-link.special .nav-link-label{color:var(--color-primary);font-weight:500}.nav-link-glow{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);height:100%;left:-100%;position:absolute;top:0;transition:left .8s ease;width:100%}.nav-link.special:hover{background:var(--color-primary);box-shadow:none;transform:none}.nav-link.special:hover .nav-link-label{color:#fff}.nav-link.special:hover .nav-link-glow{left:100%}.nav-user-section{justify-content:center;position:relative}.nav-user-section,.user-menu{align-items:center;display:flex;height:100%}.user-menu-toggle{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-sm);cursor:pointer;display:flex;gap:12px;justify-content:center;margin:0;padding:8px 16px;transition:all .3s ease;vertical-align:middle}.user-menu-toggle:hover{background:var(--color-background);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.user-avatar{border-radius:8px;height:36px;overflow:hidden;position:relative;width:36px}.avatar-image{height:100%;object-fit:cover;width:100%}.avatar-placeholder{align-items:center;background:var(--gradient-primary);color:#fff;display:flex;font-family:var(--font-body);font-size:14px;font-weight:600;height:100%;justify-content:center;width:100%}.creator-badge{background:var(--gradient-accent);bottom:-2px;color:var(--color-primary);z-index:1}.creator-badge,.queen-badge{border:2px solid #fff;border-radius:6px;padding:2px;position:absolute;right:-2px}.queen-badge{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;top:-2px;z-index:2}.user-info-preview{display:flex;flex-direction:column;gap:2px;min-width:0}.user-name-preview{color:var(--color-primary);font-family:var(--font-body);font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role-preview{color:var(--color-accent);font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.user-role-preview.queen{color:#d97706;font-weight:600}.menu-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:999}.user-menu-dropdown{animation:dropdownSlide .2s ease-out;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:var(--shadow-xl);min-width:280px;padding:20px;position:absolute;right:0;top:calc(100% + 8px);z-index:1000}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{align-items:center;display:flex;gap:16px;margin-bottom:16px}.user-avatar-large{border-radius:10px;height:48px;overflow:hidden;position:relative;width:48px}.avatar-placeholder-large{align-items:center;background:var(--gradient-primary);color:#fff;display:flex;font-family:var(--font-body);font-size:18px;font-weight:600;height:100%;justify-content:center;width:100%}.creator-badge-large{background:var(--gradient-accent);bottom:-2px;color:var(--color-primary);z-index:1}.creator-badge-large,.queen-badge-large{border:2px solid #fff;border-radius:8px;padding:3px;position:absolute;right:-2px}.queen-badge-large{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;top:-2px;z-index:2}.user-details{flex:1 1;min-width:0}.user-name-full{color:var(--color-primary);font-size:16px;font-weight:600;margin-bottom:4px}.user-email,.user-name-full{font-family:var(--font-body);word-break:break-word}.user-email{color:var(--color-text-secondary);font-size:13px;margin-bottom:8px}.user-role-badge{align-items:center;background:var(--gradient-accent);border-radius:6px;color:var(--color-primary);display:inline-flex;font-family:var(--font-body);font-size:11px;font-weight:600;gap:4px;letter-spacing:.5px;margin-right:8px;padding:4px 8px;text-transform:uppercase}.user-role-badge.queen{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.dropdown-divider{background:var(--color-border);height:1px;margin:16px 0}.dropdown-menu{display:flex;flex-direction:column;gap:4px}.dropdown-item{align-items:center;background:none;border:none;border-radius:8px;color:var(--color-text-secondary);cursor:pointer;display:flex;font-family:var(--font-body);font-size:14px;font-weight:500;gap:12px;padding:12px 16px;text-align:left;text-decoration:none;transition:all .2s ease;width:100%}.dropdown-item:hover{background:#1e2a470f;color:var(--color-primary)}.dropdown-item.sign-out:hover{background:#ef44440f;color:#e53e3e}.auth-section{gap:12px}.auth-link,.auth-section{align-items:center;display:flex}.auth-link{border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:500;letter-spacing:.025em;overflow:hidden;padding:10px 20px;position:relative;text-decoration:none;transition:all .3s ease}.login-link{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);color:var(--color-text-secondary)}.login-link:hover{background:var(--color-background);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);color:var(--color-primary);transform:translateY(-1px)}.signup-link{background:var(--gradient-primary);border:none;box-shadow:var(--shadow-md);color:#fff;font-weight:600}.signup-link:hover{box-shadow:var(--shadow-lg);transform:translateY(-1px)}.mobile-menu-toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);cursor:pointer;display:none;padding:8px;transition:all .3s ease}.mobile-menu-toggle:hover{background:var(--color-background);border-color:var(--color-border-hover);color:var(--color-primary)}.mobile-menu-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:998}.mobile-menu{animation:mobileMenuSlide .3s ease-out;background:var(--color-surface);border-bottom:1px solid var(--color-border);left:0;position:fixed;right:0;top:72px;z-index:999}@keyframes mobileMenuSlide{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.mobile-menu-content{max-height:calc(100vh - 72px);overflow-y:auto;padding:24px}.mobile-nav-links{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.mobile-nav-link{align-items:center;border-radius:12px;color:var(--color-text-secondary);display:flex;gap:16px;padding:16px 20px;text-decoration:none;transition:all .3s ease}.mobile-nav-link:hover{background:#1e2a470f;color:var(--color-primary)}.mobile-nav-link.active{background:#1e2a4714;border:1px solid #1e2a471a;color:var(--color-primary)}.mobile-nav-link.special{background:var(--gradient-accent);color:var(--color-primary)}.mobile-nav-text{display:flex;flex-direction:column;gap:4px}.mobile-nav-label{font-family:var(--font-body);font-size:16px;font-weight:600}.mobile-nav-description{font-family:var(--font-body);font-size:13px;opacity:.8}.mobile-auth-section{border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:12px;padding-top:24px}.mobile-auth-link{align-items:center;border-radius:10px;display:flex;font-family:var(--font-body);font-size:16px;font-weight:600;justify-content:center;padding:16px 24px;text-decoration:none;transition:all .3s ease}.mobile-auth-link.login{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary)}.mobile-auth-link.signup{background:var(--gradient-primary);box-shadow:var(--shadow-md);color:#fff}@media (max-width:768px){.nav-container{height:64px;padding:0 16px}.nav-links-desktop{display:none}.mobile-menu-toggle{display:block}.auth-section,.brand-tagline,.user-info-preview{display:none}.mobile-menu{top:64px}}@media (max-width:480px){.nav-container{padding:0 12px}.brand-name{font-size:24px}.brand-icon{padding:8px}}@media (min-width:769px){.mobile-auth-section,.mobile-menu,.mobile-menu-toggle{display:none!important}}.loading-spinner{padding:40px}.spinner{border:4px solid #e5e7eb;border-top-color:#3b82f6}:root{--color-primary:#1e2a47;--color-primary-light:#2d3e5f;--color-accent:#d4af37;--color-accent-light:#e6c757;--color-text-primary:#1a1a1a;--color-text-secondary:#4a5568;--color-text-muted:#718096;--color-background:#fafafa;--color-surface:#fff;--color-border:#e2e8f0;--color-border-hover:#cbd5e0;--gradient-primary:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-light) 100%);--gradient-accent:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-light) 100%);--gradient-surface:linear-gradient(135deg,#fff,#f8fafc);--font-heading:"Playfair Display","Times New Roman",serif;--font-body:"Inter","Helvetica Neue",-apple-system,BlinkMacSystemFont,sans-serif;--shadow-sm:0 1px 3px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 10px 25px #00000014;--shadow-xl:0 20px 40px #0000001a}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#fafafa;background-color:var(--color-background);color:#1a1a1a;color:var(--color-text-primary);font-family:Inter,Helvetica Neue,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);line-height:1.6}.app{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1 1;padding-top:0;transition:all .3s ease}.app-loading{align-items:center;background-color:#fafafa;background-color:var(--color-background);display:flex;justify-content:center;min-height:100vh}.action-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:Inter,Helvetica Neue,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:14px;font-weight:500;gap:8px;letter-spacing:.025em;overflow:hidden;padding:12px 24px;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.action-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.action-button:hover:before{left:100%}.action-button.primary{background:linear-gradient(135deg,#1e2a47,#2d3e5f);background:var(--gradient-primary);box-shadow:0 4px 12px #0000000f;box-shadow:var(--shadow-md);color:#fff}.action-button.primary:hover{box-shadow:0 10px 25px #00000014;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.action-button.secondary{background:#fff;background:var(--color-surface);border:1px solid #e2e8f0;border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a;box-shadow:var(--shadow-sm);color:#4a5568;color:var(--color-text-secondary)}.action-button.secondary:hover{background:#fafafa;background:var(--color-background);border-color:#cbd5e0;border-color:var(--color-border-hover);color:#1a1a1a;color:var(--color-text-primary);transform:translateY(-1px)}.action-button.accent,.action-button.secondary:hover{box-shadow:0 4px 12px #0000000f;box-shadow:var(--shadow-md)}.action-button.accent{background:linear-gradient(135deg,#d4af37,#e6c757);background:var(--gradient-accent);color:#1e2a47;color:var(--color-primary);font-weight:600}.action-button.accent:hover{box-shadow:0 10px 25px #00000014;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.character-creation-page,.chat-page,.dashboard-page,.discover-page,.profile-page{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}.loading-spinner{align-items:center;display:flex;justify-content:center;padding:20px}.spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-top:3px solid #d4af37;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-accent);height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.form-group{margin-bottom:24px}.form-group label{display:block;font-weight:500;letter-spacing:.025em;margin-bottom:8px}.form-group input,.form-group label,.form-group select,.form-group textarea{color:#1a1a1a;color:var(--color-text-primary);font-family:Inter,Helvetica Neue,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:14px}.form-group input,.form-group select,.form-group textarea{background:#fff;background:var(--color-surface);border:1px solid #e2e8f0;border:1px solid var(--color-border);border-radius:8px;padding:12px 16px;transition:all .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{background:#fff;background:var(--color-surface);border-color:#d4af37;border-color:var(--color-accent);box-shadow:0 0 0 3px #d4af371a;outline:none}.form-group input.error,.form-group textarea.error{border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1a}.error-text{color:#e53e3e}.char-count,.error-text{display:block;font-family:Inter,Helvetica Neue,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:12px;margin-top:6px}.char-count{color:#718096;color:var(--color-text-muted);text-align:right}.characters-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));margin-top:24px}.conversations-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));margin-top:24px}.empty-state{color:#718096;color:var(--color-text-muted);grid-column:1/-1;padding:80px 24px;text-align:center}.empty-state svg{color:#cbd5e0;color:var(--color-border-hover);margin-bottom:20px}.empty-state h3{color:#4a5568;color:var(--color-text-secondary);font-family:Playfair Display,Times New Roman,serif;font-family:var(--font-heading);font-size:20px;font-weight:500;margin-bottom:12px}.empty-state p{font-family:Inter,Helvetica Neue,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);line-height:1.6;margin-bottom:24px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.section-header h2{align-items:center;color:#1a1a1a;color:var(--color-text-primary);display:flex;font-family:Playfair Display,Times New Roman,serif;font-family:var(--font-heading);font-size:28px;font-weight:500;gap:12px;letter-spacing:-.025em}.see-all-link{color:#d4af37;color:var(--color-accent);font-family:Inter,Helvetica Neue,-apple-system,BlinkMacSystemFont,sans-serif;font-family:var(--font-body);font-size:14px;font-weight:500;letter-spacing:.025em;text-decoration:none;transition:color .3s ease}.see-all-link:hover{color:#e6c757;color:var(--color-accent-light);text-decoration:underline}@media (max-width:768px){.app-main{padding:64px 16px 0}.characters-grid{gap:20px;grid-template-columns:1fr}.conversations-grid{gap:16px;grid-template-columns:1fr}.section-header{align-items:flex-start;flex-direction:column;gap:12px}.section-header h2{font-size:24px}.action-button{font-size:14px;padding:10px 20px}}.tools-container{background:#fff;border:none;border-radius:12px;box-shadow:0 0 4px 2px #8d949e1a;left:8px;position:absolute;top:50%;transform:translateY(-50%);width:80px;z-index:10}.tool-button{background:#fff;border:none;cursor:pointer;font-size:12px;padding:10px 0}.tool-button:hover:not(:disabled){background-color:#fafafa}.canvas-toolbar-button{align-items:center;display:flex;flex-direction:column;justify-content:center;width:80px}.dropdown-selector{border-radius:3px;display:block;margin-top:6px;padding:4px;text-align:left}.dropdown-selector-label{align-items:center;display:flex;font-size:12px;justify-content:center;margin-bottom:8px;position:relative}.app-menu-item{margin-bottom:10px}.app-menu-button{background:none;border:none;box-shadow:none;color:#596c85;cursor:pointer;font-size:14px;padding:0;text-align:left}.app-menu-button:hover{color:#191d23;text-decoration:underline}.blue-button{align-items:center;background:#dce5f0;border:none;border-radius:12px;box-shadow:none;box-shadow:0 2px 2px 0 #8d949e26;box-sizing:border-box;color:#0966de;cursor:pointer;display:flex;font-size:14px;height:40px;justify-content:flex-start;padding:0 15px}.api-button{background:#cfff9e;border:none;border-radius:14px;box-shadow:none;box-shadow:0 4px 4px 0 #8d949e26;cursor:pointer;font-size:13px;padding:6px 10px}.clear-file-upload-button{background:#cfff9e;background:#f08080}.import-api-button{margin-left:10px}.blue-button:hover:not(:disabled){box-shadow:none}.deploy-button:disabled,.view-api-button:disabled{cursor:default}.deploy-button{margin-right:10px}.api-controls{align-items:center;display:flex;flex-direction:row;position:absolute;right:20px;top:20px;z-index:10}.deploy-controls{background:#fff;box-sizing:border-box;display:flex;justify-content:flex-end;padding:10px;position:sticky;top:0;width:100%}.deploy-controls-spacer{width:10px}.view-api-button{right:20px}.json-preview-container{background:none}.json-preview-item{font-family:monospace;font-size:14px;margin:5px 20px}.json-preview-item>span[role=button]{display:none}.get-api-button{background:#cfff9e;border:none;border-radius:12px;box-shadow:none;box-shadow:0 4px 4px 0 #8d949e26;cursor:pointer;padding:5px 10px;position:absolute;right:100px;top:20px;z-index:10}.tool-separator{border-top:1px solid #d3d3d399}.configure-sheets-button,.dropdown-tool-container{align-items:center;display:flex;flex-direction:column}.configure-sheets-icon{display:block;height:32px;width:32px}.deploy-success-indicator{align-items:center;background-color:#cfff9e;border-radius:3px;display:flex;font-size:14px;justify-content:center;opacity:0;padding:5px;pointer-events:none;text-align:center;transition:opacity 1s ease-out;width:200px}.deploy-success-indicator-visible{opacity:1}@keyframes react-spinners-BarLoader-long{0%{left:-35%;right:100%}60%{left:100%;right:-90%}to{left:100%;right:-90%}}@keyframes react-spinners-BarLoader-short{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}.loading-indicator{background:#e3fcfb;background-clip:padding-box;border-radius:4px;height:4px;left:50%;overflow:hidden;position:fixed;top:50%;transform:translate(-50%,-50%);width:200px}.loading-indicator-span-1{animation:react-spinners-BarLoader-long 2.1s cubic-bezier(.65,.815,.735,.395) 0s infinite normal none running}.loading-indicator-span-1,.loading-indicator-span-2{background:#8fda44;background-clip:padding-box;border-radius:2px;display:block;height:4px;overflow:hidden;position:absolute;will-change:left,right}.loading-indicator-span-2{animation:react-spinners-BarLoader-short 2.1s cubic-bezier(.165,.84,.44,1) 1.15s infinite normal none running}.user-menu{left:20px;top:20px;z-index:10}.user-menu-item{border-bottom:1px solid grey;cursor:pointer}.user-modal{z-index:10}.role-toggle-wrapper{align-items:center;display:flex;font-size:14px}.role-toggle{margin:4px 5px 0}.router-link{color:#0966de;font-size:14px;margin-left:20px;margin-top:10px}.canvas-name-input{background:none;border:none;font-size:16px;outline:none}.overlay{background:#ffffffbf;bottom:0;left:0;position:fixed;right:0;top:0;z-index:11}.modal{background:#ffffffe6;border:1px solid #ccc;border-radius:5px;box-sizing:border-box;max-height:calc(100vh - 40px);min-width:400px;overflow:auto;position:absolute;right:20px;top:20px;z-index:12}.file-upload-container{display:flex;flex-direction:column;font-family:sans-serif;margin:10px 0}.dropzone{background-color:#fafafa;border:2px dashed #eee;border-radius:2px;color:#bdbdbd;flex:1 1;flex-direction:column;outline:none;padding:20px;transition:border .24s ease-in-out}.dropzone,.map-controls-button{align-items:center;display:flex}.map-controls-button{background-color:#fff;border-bottom:1px solid #eee;cursor:pointer;justify-content:center}.map-controls-button:hover{background-color:#f4f4f4}.profile-modal-field{margin-bottom:15px}.profile-modal-field label{display:block;font-weight:700;margin-bottom:5px}.profile-modal-field input{border:1px solid #ccc;border-radius:4px;padding:8px;width:300px}.profile-modal-actions{display:flex;gap:10px;justify-content:flex-end}.profile-modal-actions button{border:none;border-radius:4px;cursor:pointer;padding:8px 12px}.profile-modal-actions button:disabled{cursor:not-allowed;opacity:.6}.toaster-message{align-items:center;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:5px;bottom:20px;box-shadow:0 4px 6px #0000001a;color:#721c24;display:flex;gap:10px;padding:10px 20px;position:fixed;right:20px;z-index:1000}.toaster-message button{background:none;border:none;color:#721c24;cursor:pointer;font-weight:700}.toaster-message button:hover{text-decoration:underline}
/*# sourceMappingURL=main.cb10cd70.css.map*/