@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";.chat-panel-overlay{position:fixed;top:0;right:0;bottom:0;width:100vw;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1000;display:flex;justify-content:flex-end;opacity:0;pointer-events:none;transition:opacity .3s ease}.chat-panel-overlay.open{opacity:1;pointer-events:auto}.chat-panel{width:400px;max-width:100%;height:100%;background:var(--bg-primary);border-left:1px solid var(--border);box-shadow:-4px 0 24px #0003;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.16,1,.3,1)}.chat-panel-overlay.open .chat-panel{transform:translate(0)}.chat-header{padding:1rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--bg-elevated)}.chat-header h3{margin:0;font-size:1.1rem;color:var(--text-primary)}.chat-close-btn{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;line-height:1;padding:.25rem}.chat-close-btn:hover{color:var(--text-primary)}.chat-messages{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem;background:var(--bg-primary)}.chat-message{max-width:80%;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.95rem;line-height:1.4;word-wrap:break-word}.chat-message.sent{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-message.received{align-self:flex-start;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-bottom-left-radius:4px}.chat-time{font-size:.7rem;opacity:.7;margin-top:.25rem;text-align:right;display:block}.chat-input-area{padding:1rem 1.5rem;border-top:1px solid var(--border);background:var(--bg-elevated);display:flex;gap:.5rem}.chat-input{flex:1;padding:.75rem 1rem;border-radius:20px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);outline:none}.chat-input:focus{border-color:var(--accent)}.chat-send-btn{background:var(--accent);color:#fff;border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s}.chat-send-btn:hover:not(:disabled){opacity:.9}.chat-send-btn:disabled{background:var(--bg-elevated);color:var(--text-muted);cursor:not-allowed}.theme-toggle{position:relative;width:52px;height:28px;border-radius:100px;border:1px solid var(--border);background:var(--bg-secondary);cursor:pointer;padding:0;transition:all var(--transition-normal);flex-shrink:0}.theme-toggle:hover{border-color:var(--border-hover);box-shadow:0 0 12px var(--accent-glow)}.theme-toggle:active{transform:scale(.95)}.theme-toggle__knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--accent-gradient);box-shadow:0 2px 8px var(--accent-glow);transition:transform .4s cubic-bezier(.68,-.3,.32,1.3);display:flex;align-items:center;justify-content:center;overflow:hidden}[data-theme=dark] .theme-toggle__knob{transform:translate(24px)}.theme-toggle__icons{position:relative;width:12px;height:12px}.theme-toggle__sun{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.68,-.3,.32,1.3)}.theme-toggle__sun svg{width:12px;height:12px;fill:#fff}.theme-toggle__moon{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.68,-.3,.32,1.3)}.theme-toggle__moon svg{width:11px;height:11px;fill:#fff}.theme-toggle__sun{opacity:1;transform:scale(1) rotate(0)}.theme-toggle__moon{opacity:0;transform:scale(.5) rotate(90deg)}[data-theme=dark] .theme-toggle__sun{opacity:0;transform:scale(.5) rotate(-90deg)}[data-theme=dark] .theme-toggle__moon{opacity:1;transform:scale(1) rotate(0)}.theme-toggle__stars{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:100px;overflow:hidden;pointer-events:none}.theme-toggle__star{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff9;opacity:0;transition:opacity .5s ease}[data-theme=dark] .theme-toggle__star{opacity:1;animation:pulse 2s ease-in-out infinite}.theme-toggle__star:nth-child(1){top:6px;right:10px;animation-delay:0s}.theme-toggle__star:nth-child(2){top:14px;right:16px;width:1.5px;height:1.5px;animation-delay:.5s}.theme-toggle__star:nth-child(3){top:8px;right:22px;width:1px;height:1px;animation-delay:1s}.navbar{position:fixed;top:0;left:0;right:0;height:64px;z-index:var(--z-navbar);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--glass-border);transition:all var(--transition-normal)}.navbar--scrolled{box-shadow:var(--shadow-md)}.navbar--scrolled:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background:var(--accent-gradient);opacity:.5;animation:fadeIn .3s ease-out both}.navbar__brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.navbar__logo{width:32px;height:32px;border-radius:var(--radius-md);background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px var(--accent-glow);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.navbar__brand:hover .navbar__logo{transform:scale(1.05) rotate(-3deg);box-shadow:0 4px 16px var(--accent-glow)}.navbar__logo svg{width:18px;height:18px;fill:#fff}.navbar__title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;letter-spacing:-.03em;background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar__nav{display:flex;align-items:center;gap:4px}.navbar__link{padding:8px 16px;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast);position:relative}.navbar__link:hover{color:var(--text-primary);background:var(--border)}.navbar__link--active{color:var(--accent);background:var(--accent-glow)}.navbar__link--active:after{content:"";position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:16px;height:2px;border-radius:100px;background:var(--accent)}.navbar__right{display:flex;align-items:center;gap:12px}.navbar__hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;width:36px;height:36px;border-radius:var(--radius-md);cursor:pointer;background:none;border:none;padding:0;gap:5px;transition:background var(--transition-fast)}.navbar__hamburger:hover{background:var(--border)}.navbar__hamburger-line{display:block;width:20px;height:2px;border-radius:100px;background:var(--text-secondary);transition:all .3s cubic-bezier(.68,-.3,.32,1.3);transform-origin:center}.navbar__hamburger--open .navbar__hamburger-line:nth-child(1){transform:translateY(7px) rotate(45deg)}.navbar__hamburger--open .navbar__hamburger-line:nth-child(2){opacity:0;transform:scaleX(0)}.navbar__hamburger--open .navbar__hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.navbar__mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;bottom:0;background:var(--bg-elevated);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);z-index:calc(var(--z-navbar) - 1);padding:16px;flex-direction:column;gap:4px;animation:fadeIn .2s ease-out both}.navbar__mobile-menu--open{display:flex}.navbar__mobile-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--radius-md);font-size:1rem;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.navbar__mobile-link:hover{color:var(--text-primary);background:var(--border)}.navbar__mobile-link--active{color:var(--accent);background:var(--accent-glow)}.navbar__mobile-link svg{width:20px;height:20px;opacity:.7}.navbar__mobile-divider{height:1px;background:var(--border);margin:8px 0}.navbar__mobile-theme{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-size:.9rem;color:var(--text-secondary)}.navbar-spacer{height:64px}@media (max-width: 768px){.navbar{padding:0 16px}.navbar__nav{display:none}.navbar__hamburger{display:flex}}.profile-mini-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm)}.profile-mini-card__header{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.profile-mini-card__avatar{width:52px;height:52px;border-radius:50%;background:var(--accent-gradient);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;position:relative;border:2px solid var(--border);transition:transform .15s ease,border-color .15s ease;overflow:hidden}.profile-mini-card__avatar:hover{transform:scale(1.05);border-color:var(--accent)}.profile-mini-card__initial{font-weight:700;font-size:1.3rem;color:#fff}.profile-mini-card__avatar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;font-size:.9rem;opacity:0;transition:opacity .15s ease;border-radius:50%}.profile-mini-card__avatar:hover .profile-mini-card__avatar-overlay{opacity:1}.profile-mini-card__info{min-width:0}.profile-mini-card__name{font-weight:700;font-size:1rem;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-mini-card__pronouns{font-size:.8rem;color:var(--text-muted)}.profile-mini-card__bio{font-size:.85rem;color:var(--text-secondary);line-height:1.45;margin-bottom:.75rem;white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.profile-mini-card__bio--empty{font-style:italic;color:var(--text-muted)}.profile-mini-card__music{margin-bottom:.75rem;border-radius:var(--radius-md);overflow:hidden}.profile-mini-card__music>div{margin-bottom:0!important}.profile-mini-card__edit{display:flex;flex-direction:column;gap:.65rem;margin-top:.5rem}.profile-mini-card__field{display:flex;flex-direction:column;gap:.2rem}.profile-mini-card__field label{font-size:.75rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.profile-mini-card__field textarea{resize:vertical;min-height:60px}.profile-mini-card__actions{display:flex;gap:.5rem;margin-top:.25rem}.profile-mini-card__edit-btn{width:100%;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius-md);background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.profile-mini-card__edit-btn:hover{background:var(--bg-elevated);border-color:var(--border-hover);color:var(--text-primary)}.sidebar{position:sticky;top:80px;width:260px;max-height:calc(100vh - 96px);flex-shrink:0;display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);overflow-y:auto;transition:all var(--transition-normal);animation:slideInLeft .4s cubic-bezier(.16,1,.3,1) both}.sidebar:hover{box-shadow:var(--shadow-md)}.sidebar__header{padding:8px 10px 12px;display:flex;align-items:center;justify-content:space-between}.sidebar__title{font-family:var(--font-heading);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.sidebar__count{font-size:.7rem;font-weight:600;color:var(--text-muted);padding:2px 8px;border-radius:100px;background:var(--border)}.sidebar__item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast);position:relative;overflow:hidden;font-size:.875rem;font-weight:500;color:var(--text-secondary);background:none;width:100%;text-align:left}.sidebar__item:hover{background:var(--border);color:var(--text-primary)}.sidebar__item--active{background:var(--accent-glow);color:var(--accent);border-color:#7c5bf526}.sidebar__item--active:hover{background:var(--accent-glow);color:var(--accent)}.sidebar__item--active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;border-radius:0 100px 100px 0;background:var(--accent);box-shadow:0 0 8px var(--accent-glow)}.sidebar__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor;transition:transform var(--transition-fast)}.sidebar__item:hover .sidebar__dot{transform:scale(1.2)}.sidebar__emoji{font-size:1rem;line-height:1;flex-shrink:0;width:20px;text-align:center}.sidebar__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__badge{font-size:.7rem;font-weight:600;color:var(--text-muted);padding:1px 6px;border-radius:100px;background:var(--border);flex-shrink:0;transition:all var(--transition-fast)}.sidebar__item--active .sidebar__badge{background:#7c5bf533;color:var(--accent)}.sidebar__all-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar__all-icon svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sidebar__divider{height:1px;background:var(--border);margin:8px 4px}.sidebar__new-folder{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius-md);cursor:pointer;border:1px dashed var(--border);transition:all var(--transition-fast);font-size:.85rem;font-weight:500;color:var(--text-muted);background:none;width:100%;text-align:left;margin-top:4px}.sidebar__new-folder:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow)}.sidebar__new-folder-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;transition:transform var(--transition-fast)}.sidebar__new-folder:hover .sidebar__new-folder-icon{transform:rotate(90deg)}.sidebar__empty{padding:16px 12px;text-align:center;color:var(--text-muted);font-size:.8rem;line-height:1.5}.sidebar__mobile-toggle{display:none;position:fixed;bottom:20px;left:20px;z-index:var(--z-sidebar);width:48px;height:48px;border-radius:50%;background:var(--accent-gradient);color:#fff;border:none;box-shadow:0 4px 16px var(--accent-glow);cursor:pointer;align-items:center;justify-content:center;transition:all var(--transition-fast)}.sidebar__mobile-toggle:hover{transform:scale(1.1);box-shadow:0 6px 24px var(--accent-glow)}.sidebar__mobile-toggle:active{transform:scale(.95)}.sidebar__mobile-toggle svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sidebar__overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-sidebar) - 1);background:#0006;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fadeIn .2s ease-out both}@media (max-width: 900px){.sidebar{position:fixed;top:64px;left:0;bottom:0;width:280px;max-height:none;border-radius:0 var(--radius-lg) var(--radius-lg) 0;z-index:var(--z-sidebar);transform:translate(-100%);transition:transform .35s cubic-bezier(.16,1,.3,1);animation:none}.sidebar--open{transform:translate(0)}.sidebar__mobile-toggle{display:flex}.sidebar__overlay--visible{display:block}}.search-bar{position:relative;display:flex;align-items:center;width:280px;transition:width var(--transition-normal) cubic-bezier(.16,1,.3,1)}.search-bar:focus-within{width:360px}.search-bar-inner{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem 1rem;background:rgba(var(--bg-card-rgb, 30, 30, 46),.55);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--transition-fast) ease,box-shadow var(--transition-fast) ease,background var(--transition-fast) ease}.search-bar:focus-within .search-bar-inner{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow),var(--shadow-md);background:rgba(var(--bg-card-rgb, 30, 30, 46),.75)}.search-bar-icon{flex-shrink:0;width:18px;height:18px;color:var(--text-muted);transition:color var(--transition-fast) ease}.search-bar:focus-within .search-bar-icon{color:var(--accent)}.search-bar-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:.875rem;color:var(--text-primary)}.search-bar-input::placeholder{color:var(--text-muted);transition:color var(--transition-fast) ease}.search-bar:focus-within .search-bar-input::placeholder{color:var(--text-secondary)}.search-bar-clear{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:50%;color:var(--text-muted);font-size:.65rem;cursor:pointer;opacity:0;transform:scale(.7);transition:opacity var(--transition-fast) ease,transform var(--transition-fast) ease,background var(--transition-fast) ease,color var(--transition-fast) ease}.search-bar-clear.visible{opacity:1;transform:scale(1)}.search-bar-clear:hover{background:var(--bg-elevated);color:var(--text-primary)}.folder-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .65rem;border-radius:var(--radius-lg);font-family:var(--font-body);font-size:.75rem;font-weight:600;white-space:nowrap;border:1px solid transparent;transition:background var(--transition-fast) ease,transform var(--transition-fast) ease,box-shadow var(--transition-fast) ease;cursor:default}.folder-badge:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}.folder-badge-icon{font-size:.8rem;line-height:1}.folder-badge-name{line-height:1.2}.character-card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:all .35s cubic-bezier(.16,1,.3,1);text-decoration:none;color:inherit;cursor:pointer}.character-card:hover{transform:translateY(-4px) scale(1.03);box-shadow:var(--shadow-lg);border-color:var(--border-hover)}.character-card:hover .character-card__image{transform:scale(1.05)}.character-card:active{transform:translateY(-1px) scale(1.01)}.character-card__image-wrap{position:relative;aspect-ratio:3 / 4;overflow:hidden;background:var(--bg-secondary)}.character-card__image{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.16,1,.3,1)}.character-card__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:3rem;font-weight:700;color:#fff9;text-shadow:0 2px 12px rgba(0,0,0,.3)}.character-card__image-wrap:after{content:"";position:absolute;bottom:0;left:0;right:0;height:60%;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 100%);pointer-events:none}.character-card__info{padding:1rem 1.1rem;display:flex;flex-direction:column;gap:.5rem}.character-card__name{font-family:var(--font-heading);font-size:1.1rem;font-weight:700;color:var(--text-primary);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-card__species{font-size:.8rem;font-weight:500;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-card__tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.15rem}.character-card__tag{padding:.15rem .55rem;border-radius:100px;font-size:.68rem;font-weight:600;background:var(--accent-glow);color:var(--accent);white-space:nowrap}.character-card__folder{position:absolute;top:.75rem;right:.75rem;z-index:2}.character-card.stagger-in{opacity:0;transform:translateY(16px);animation:cardSlideIn .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes cardSlideIn{to{opacity:1;transform:translateY(0)}}.character-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;padding:.5rem 0}.character-grid__new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:220px;border-radius:var(--radius-lg);border:2px dashed var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--transition-normal);text-decoration:none}.character-grid__new:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-glow);transform:translateY(-2px)}.character-grid__new:active{transform:translateY(0)}.character-grid__new-icon{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.75rem;border:2px dashed currentColor;transition:all var(--transition-fast)}.character-grid__new:hover .character-grid__new-icon{border-style:solid;background:var(--accent);color:#fff;border-color:var(--accent);transform:rotate(90deg)}.character-grid__new-text{font-family:var(--font-heading);font-size:1rem;font-weight:600}.character-grid__empty{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:4rem 2rem;text-align:center;animation:fadeIn .6s ease both}.character-grid__empty-icon{font-size:4rem;animation:float 4s ease-in-out infinite}.character-grid__empty-title{font-family:var(--font-heading);font-size:1.5rem;font-weight:700;color:var(--text-primary)}.character-grid__empty-desc{font-size:.95rem;color:var(--text-muted);max-width:400px;line-height:1.6}.character-grid__empty-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);background:var(--accent-gradient);color:#fff;font-weight:600;font-size:.95rem;border:none;cursor:pointer;box-shadow:0 4px 16px var(--accent-glow);transition:all var(--transition-fast)}.character-grid__empty-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px var(--accent-glow)}@media (max-width: 640px){.character-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}}.activity-feed{background:var(--bg-elevated);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border);max-height:400px;overflow-y:auto}.activity-feed__title{margin-top:0;margin-bottom:1rem;font-size:1.1rem;color:var(--text);border-bottom:1px solid var(--border);padding-bottom:.5rem}.activity-feed.loading,.activity-feed.empty{text-align:center;color:var(--text-muted);font-style:italic;padding:2rem}.activity-feed__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1rem}.activity-feed__item{display:flex;gap:.75rem;align-items:flex-start;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.05)}.activity-feed__item:last-child{border-bottom:none;padding-bottom:0}.activity-feed__icon{font-size:1.2rem;background:#ffffff1a;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.activity-feed__content{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem;color:var(--text-secondary)}.activity-feed__text{margin:0;line-height:1.4}.activity-feed__user{font-weight:600;color:var(--text)}.activity-feed__link{color:var(--primary);text-decoration:none;font-weight:500;font-size:.85rem;width:fit-content}.activity-feed__link:hover{text-decoration:underline}.activity-feed__time{font-size:.75rem;color:var(--text-muted)}.home-page{padding-top:calc(var(--nav-height) + 1.5rem);padding-bottom:2rem;min-height:100vh;gap:2rem}.sidebar-container{flex:0 0 260px}.main-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1.5rem}.main-header{display:flex;gap:1rem;align-items:center}.search-container{flex:1;max-width:600px}.mobile-sidebar-toggle{display:none;font-size:1.5rem;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-md);width:44px;height:44px}.btn-new-char-mobile{display:none;padding:0 1rem;height:44px;border-radius:var(--radius-md);background:var(--accent);color:#fff;border:none;font-weight:600}@media (max-width: 900px){.sidebar-container{position:absolute;width:0;flex:0}.mobile-sidebar-toggle{display:flex;align-items:center;justify-content:center}.btn-new-char-mobile{display:block}}@media (max-width: 600px){.home-page{padding-top:calc(var(--nav-height) + 1rem);padding-left:1rem;padding-right:1rem}}.color-palette{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.color-swatch{position:relative;width:28px;height:28px;border-radius:50%;border:2px solid var(--border);cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.color-swatch:hover{transform:scale(1.2);border-color:var(--border-hover);box-shadow:0 0 12px currentColor}.color-swatch:active{transform:scale(.95)}.color-swatch--editable:hover:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:700;color:#fff;background:#00000080;border-radius:50%}.color-palette__add{position:relative;width:28px;height:28px;border-radius:50%;border:2px dashed var(--border);background:transparent;color:var(--text-muted);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);overflow:hidden}.color-palette__add:hover{border-color:var(--accent);color:var(--accent);transform:scale(1.1)}.color-palette__add input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer;width:100%;height:100%}.color-swatch__tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:3px 8px;border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-primary);font-size:.7rem;font-weight:600;font-family:monospace;white-space:nowrap;pointer-events:none;animation:fadeIn .15s ease both;z-index:10}.color-palette--large .color-swatch{width:32px;height:32px}.profile-header{position:relative;width:100%;animation:fadeIn .5s ease both}.profile-header__banner{position:relative;width:100%;height:280px;border-radius:var(--radius-xl);overflow:hidden;background:var(--bg-secondary)}.profile-header__banner-img{width:100%;height:100%;object-fit:cover}.profile-header__banner-fallback{width:100%;height:100%}.profile-header__banner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 30%,rgba(0,0,0,.3) 60%,rgba(0,0,0,.7) 100%);pointer-events:none}.profile-header__actions{position:absolute;top:1rem;right:1rem;display:flex;gap:.5rem;z-index:5}.profile-header__action-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:#0006;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);color:#fff;font-size:1.1rem;cursor:pointer;transition:all var(--transition-fast)}.profile-header__action-btn:hover{background:#0009;transform:translateY(-1px)}.profile-header__action-btn--danger:hover{background:var(--danger)}.profile-header__content{position:relative;display:flex;align-items:flex-end;gap:1.5rem;padding:0 1.5rem;margin-top:-60px;z-index:3}.profile-header__avatar{width:120px;height:120px;border-radius:50%;border:4px solid var(--bg-primary);box-shadow:var(--shadow-lg);overflow:hidden;flex-shrink:0;background:var(--bg-secondary)}.profile-header__avatar img{width:100%;height:100%;object-fit:cover}.profile-header__avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-size:2.5rem;font-weight:700;color:#ffffffb3}.profile-header__text{display:flex;flex-direction:column;gap:.4rem;padding-bottom:.5rem;min-width:0}.profile-header__name{font-family:var(--font-heading);font-size:2rem;font-weight:800;color:var(--text-primary);line-height:1.15;letter-spacing:-.02em}.profile-header__nickname{font-size:1rem;font-weight:500;color:var(--text-muted);font-style:italic}.profile-header__species{font-size:.95rem;font-weight:500;color:var(--text-secondary)}.profile-header__meta{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:1rem 1.5rem 0}.profile-header__tags{display:flex;gap:.4rem;flex-wrap:wrap}.profile-header__tag{padding:.25rem .75rem;border-radius:100px;font-size:.78rem;font-weight:600;background:var(--accent-glow);color:var(--accent);transition:all var(--transition-fast)}.profile-header__tag:hover{background:var(--accent);color:#fff}@media (max-width: 640px){.profile-header__banner{height:180px;border-radius:var(--radius-lg)}.profile-header__content{flex-direction:column;align-items:center;text-align:center;margin-top:-50px}.profile-header__avatar{width:100px;height:100px}.profile-header__name{font-size:1.5rem}.profile-header__meta{justify-content:center}}.profile-about{display:grid;grid-template-columns:2fr 1fr;gap:2rem;animation:slideUp var(--transition-normal) ease-out}@media (max-width: 768px){.profile-about{grid-template-columns:1fr}}.about-main,.about-stats{padding:2rem;background-color:var(--bg-card);border:1px solid var(--border)}.about-main h3,.about-stats h3{margin-top:0;margin-bottom:1.5rem;font-size:1.5rem;color:var(--text-primary);border-bottom:1px solid var(--border);padding-bottom:.75rem}.description-content{line-height:1.7}.description-content p{margin-bottom:1rem}.description-content p:last-child{margin-bottom:0}.stats-grid{display:flex;flex-direction:column;gap:.75rem}.stat-row{display:flex;justify-content:space-between;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.stat-row:last-child{border-bottom:none;padding-bottom:0}.stat-label{font-weight:500;flex:0 0 40%}.stat-value{color:var(--text-primary);text-align:right;flex:1}.profile-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1.5rem;animation:slideUp var(--transition-normal) ease-out}.empty-gallery{padding:4rem 2rem;border:1px dashed var(--border)}.gallery-item{position:relative;display:flex;flex-direction:column;cursor:pointer;background-color:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.gallery-item-image-wrapper{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-md)}.gallery-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-md);border-color:var(--border-hover);z-index:1}.gallery-item-image-wrapper img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.gallery-item:hover .gallery-item-image-wrapper img{transform:scale(1.05)}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;padding:1.5rem 1rem 1rem;background:linear-gradient(to top,#000c,#0000);opacity:0;transition:opacity var(--transition-fast);color:#fff;display:flex;align-items:flex-end}.gallery-item:hover .gallery-overlay{opacity:1}.gallery-caption{font-size:.875rem;font-weight:500;text-shadow:0 1px 2px rgba(0,0,0,.5)}.gallery-item-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.5rem;opacity:1;transition:opacity var(--transition-fast);z-index:10}@media (min-width: 768px){.gallery-item-actions{opacity:0}.gallery-item:hover .gallery-item-actions{opacity:1}}.gallery-item-edit,.gallery-item-remove{width:32px;height:32px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform var(--transition-fast),background var(--transition-fast)}.gallery-item-edit{background:#ffffffe6;color:#333;font-size:.9rem}.gallery-item-remove{background:#dc2626e6;color:#fff;font-size:1.1rem}.gallery-item-edit:hover,.gallery-item-remove:hover{transform:scale(1.1)}.gallery-item-edit:hover{background:#fff}.gallery-item-remove:hover{background:#dc2626}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0000;opacity:0;visibility:hidden;transition:background var(--transition-normal) ease,opacity var(--transition-normal) ease,visibility var(--transition-normal) ease;-webkit-user-select:none;user-select:none}.lightbox-overlay.lightbox-open{background:#000000eb;opacity:1;visibility:visible}.lightbox-image-container{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:4rem 5rem}.lightbox-image{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 8px 60px #00000080;opacity:0;transform:scale(.95);transition:opacity .4s ease,transform .4s cubic-bezier(.16,1,.3,1)}.lightbox-open .lightbox-image{opacity:1;transform:scale(1)}.lightbox-image.lightbox-fade-enter{opacity:0;transform:scale(.97)}.lightbox-image.lightbox-fade-active{opacity:1;transform:scale(1)}.lightbox-counter{position:absolute;top:1.25rem;left:1.5rem;font-family:var(--font-body);font-size:.875rem;font-weight:600;color:#ffffffbf;background:#00000073;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:.4rem .85rem;border-radius:var(--radius-lg);letter-spacing:.05em}.lightbox-close{position:absolute;top:1.25rem;right:1.5rem;display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#ffffffd9;font-size:1.3rem;cursor:pointer;z-index:10;transition:background var(--transition-fast) ease,transform var(--transition-fast) ease,color var(--transition-fast) ease}.lightbox-close:hover{background:#ffffff26;color:#fff;transform:rotate(90deg) scale(1.1)}.lightbox-download{position:absolute;top:1.25rem;right:5rem;display:flex;align-items:center;justify-content:center;width:42px;height:42px;padding:0;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#ffffffd9;font-size:1.1rem;cursor:pointer;z-index:10;transition:background var(--transition-fast) ease,transform var(--transition-fast) ease,color var(--transition-fast) ease}.lightbox-download:hover{background:#ffffff26;color:#fff;transform:translateY(-2px) scale(1.05)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:50px;height:50px;padding:0;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:50%;color:#fffc;font-size:1.4rem;cursor:pointer;transition:background var(--transition-fast) ease,transform var(--transition-fast) ease,border-color var(--transition-fast) ease,box-shadow var(--transition-fast) ease;z-index:10}.lightbox-nav:hover{background:#ffffff1f;border-color:#fff3;color:#fff;box-shadow:0 0 20px #ffffff14}.lightbox-nav:active{transform:translateY(-50%) scale(.92)}.lightbox-nav-prev{left:1.5rem}.lightbox-nav-next{right:1.5rem}.lightbox-caption{position:absolute;bottom:0;left:0;right:0;padding:2rem 2rem 1.5rem;background:linear-gradient(transparent,#000000bf);display:flex;flex-direction:column;gap:.3rem}.lightbox-caption-text{margin:0;font-family:var(--font-body);font-size:.95rem;color:#ffffffe6;font-weight:500}.lightbox-caption-credit{font-size:.8rem;color:#ffffff8c}.lightbox-caption-credit a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast) ease}.lightbox-caption-credit a:hover{color:var(--accent-hover);text-decoration:underline}@media (max-width: 640px){.lightbox-image-container{padding:3.5rem 1rem}.lightbox-nav{width:40px;height:40px;font-size:1.1rem}.lightbox-nav-prev{left:.5rem}.lightbox-nav-next{right:.5rem}}.image-uploader{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2.5rem 2rem;min-height:180px;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--bg-secondary);cursor:pointer;transition:border-color var(--transition-normal) ease,background var(--transition-normal) ease,box-shadow var(--transition-normal) ease,transform var(--transition-fast) ease;overflow:hidden}.image-uploader:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:radial-gradient(circle at center,var(--accent-glow) 0%,transparent 70%);opacity:0;transition:opacity var(--transition-normal) ease;pointer-events:none}.image-uploader:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.image-uploader:hover:before{opacity:.04}.image-uploader.drag-over{border-color:var(--accent);background:var(--bg-elevated);box-shadow:0 0 30px var(--accent-glow),inset 0 0 20px var(--accent-glow);transform:scale(1.01);animation:uploader-pulse 1.5s ease-in-out infinite}.image-uploader.drag-over:before{opacity:.1}@keyframes uploader-pulse{0%,to{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow),inset 0 0 15px var(--accent-glow)}50%{border-color:var(--accent-hover);box-shadow:0 0 40px var(--accent-glow),inset 0 0 25px var(--accent-glow)}}.image-uploader-icon{font-size:2.5rem;line-height:1;opacity:.5;transition:opacity var(--transition-normal) ease,transform var(--transition-normal) ease}.image-uploader:hover .image-uploader-icon,.image-uploader.drag-over .image-uploader-icon{opacity:.8;transform:translateY(-2px)}.image-uploader-text{font-family:var(--font-body);font-size:.9rem;color:var(--text-muted);text-align:center;line-height:1.5;transition:color var(--transition-normal) ease}.image-uploader:hover .image-uploader-text,.image-uploader.drag-over .image-uploader-text{color:var(--text-secondary)}.image-uploader-text strong{color:var(--accent);font-weight:600}.image-uploader-input{display:none}.image-uploader.upload-error{border-color:var(--danger, #ef4444)}.image-uploader-error{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding:10px 14px;border-radius:var(--radius-md, 8px);background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--danger, #ef4444);font-size:.82rem;line-height:1.4;animation:errorSlideIn .25s ease-out}.image-uploader-error-dismiss{flex-shrink:0;background:none;border:none;color:var(--danger, #ef4444);cursor:pointer;font-size:.9rem;padding:2px 6px;border-radius:4px;opacity:.6;transition:opacity .15s}.image-uploader-error-dismiss:hover{opacity:1}@keyframes errorSlideIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem;background:#0000;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);opacity:0;visibility:hidden;transition:background var(--transition-normal) ease,backdrop-filter var(--transition-normal) ease,opacity var(--transition-normal) ease,visibility var(--transition-normal) ease}.modal-overlay.modal-open{background:#0009;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:1;visibility:visible}.modal-panel{position:relative;width:100%;max-height:85vh;display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),0 0 60px rgba(var(--accent-rgb, 99, 102, 241),.08);transform:translateY(30px) scale(.96);opacity:0;transition:transform var(--transition-normal) cubic-bezier(.16,1,.3,1),opacity var(--transition-normal) ease;overflow:hidden}.modal-open .modal-panel{transform:translateY(0) scale(1);opacity:1}.modal-panel.modal-sm{max-width:420px}.modal-panel.modal-md{max-width:600px}.modal-panel.modal-lg{max-width:860px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);background:var(--bg-elevated)}.modal-title{margin:0;font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.modal-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-muted);font-size:1.25rem;cursor:pointer;transition:background var(--transition-fast) ease,color var(--transition-fast) ease,border-color var(--transition-fast) ease,transform var(--transition-fast) ease}.modal-close:hover{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary);transform:rotate(90deg)}.modal-close:active{transform:rotate(90deg) scale(.9)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-body::-webkit-scrollbar{width:6px}.modal-body::-webkit-scrollbar-track{background:transparent}.modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.moodboard-wrapper{display:flex;flex-direction:column;gap:1rem}.moodboard-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.moodboard-toolbar__left{position:relative}.moodboard-add-menu{position:absolute;top:calc(100% + .5rem);left:0;z-index:20;display:flex;flex-direction:column;padding:.5rem;gap:.25rem;min-width:180px;animation:fadeIn .15s ease-out both}.moodboard-add-menu button{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;border:none;background:transparent;color:var(--text-primary);border-radius:var(--radius-sm);font-size:.9rem;cursor:pointer;transition:background var(--transition-fast)}.moodboard-add-menu button:hover{background:var(--bg-secondary)}.moodboard-canvas{position:relative;min-height:500px;background:var(--bg-card);border:2px dashed var(--border);border-radius:var(--radius-lg);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.moodboard-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--text-muted);font-style:italic;text-align:center;padding:2rem}.moodboard-item{position:absolute;cursor:grab;border-radius:var(--radius-md);transition:box-shadow .15s ease;box-shadow:var(--shadow-sm)}.moodboard-item:hover{box-shadow:var(--shadow-md)}.moodboard-item.dragging{cursor:grabbing;box-shadow:var(--shadow-lg);opacity:.9;z-index:9999!important}.moodboard-item__delete{position:absolute;top:-8px;right:-8px;z-index:10;width:22px;height:22px;border-radius:50%;background:var(--danger);color:#fff;border:2px solid var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;cursor:pointer;opacity:0;transition:opacity .15s ease,transform .15s ease;transform:scale(.8);line-height:1;padding:0}.moodboard-item:hover .moodboard-item__delete{opacity:1;transform:scale(1)}.moodboard-item--image{overflow:hidden;border:3px solid rgba(255,255,255,.3);background:var(--bg-elevated)}.moodboard-item__img{width:100%;height:100%;object-fit:cover;pointer-events:none;border-radius:calc(var(--radius-md) - 2px)}.moodboard-item--text{background:var(--sticky-color, #fff9c4);padding:.75rem;min-width:120px;box-shadow:2px 2px 8px #00000026;transform:rotate(-1deg)}.moodboard-item--text:nth-child(2n){transform:rotate(1.5deg)}.moodboard-item--text:nth-child(3n){transform:rotate(-.5deg)}.moodboard-item--text.dragging{transform:rotate(0) scale(1.03)}.moodboard-item__text{font-size:.85rem;color:#333;line-height:1.4;white-space:pre-wrap;word-break:break-word}.moodboard-item__text-edit{display:flex;flex-direction:column;gap:.5rem}.moodboard-item__text-edit textarea{width:100%;border:1px solid rgba(0,0,0,.15);border-radius:4px;padding:.5rem;font-size:.85rem;resize:vertical;color:#333;background:#ffffffb3;font-family:inherit}.moodboard-item--color{display:flex;flex-direction:column;align-items:center;overflow:hidden;background:var(--bg-elevated);border:2px solid var(--border)}.moodboard-item__color{display:flex;flex-direction:column;align-items:center;width:100%;height:100%}.moodboard-item__color-swatch{width:100%;flex:1;min-height:50px;border-radius:calc(var(--radius-md) - 2px) calc(var(--radius-md) - 2px) 0 0}.moodboard-item__color-label{font-size:.7rem;font-weight:600;color:var(--text-secondary);padding:.35rem;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 768px){.moodboard-canvas{min-height:400px}.moodboard-toolbar{flex-direction:column;align-items:flex-start}}.profile-relationships{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;animation:slideUp var(--transition-normal) ease-out}.empty-relationships{padding:4rem 2rem;border:1px dashed var(--border)}.relationship-card{display:flex;gap:1rem;padding:1rem;background-color:var(--bg-card);border:1px solid var(--border);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-fast);text-decoration:none;color:inherit}.relationship-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--accent)}.rel-avatar{flex-shrink:0;width:64px;height:64px;border-radius:50%;overflow:hidden;border:2px solid var(--bg-elevated);box-shadow:var(--shadow-sm)}.rel-avatar img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.5rem}.rel-info{flex:1;min-width:0}.rel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;gap:.5rem}.rel-header h4{margin:0;font-size:1.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-primary)}.rel-type-badge{font-size:.75rem;padding:.125rem .5rem;background-color:var(--accent-glow);color:var(--accent);border-radius:1rem;font-weight:600;white-space:nowrap;border:1px solid rgba(124,77,255,.2)}.rel-description{margin:0;font-size:.875rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.confirm-dialog-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;padding:.5rem 0}.confirm-dialog-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;font-size:1.6rem;animation:confirm-icon-pulse .6s ease}.confirm-dialog-icon.danger{background:rgba(var(--danger-rgb, 239, 68, 68),.12);color:var(--danger);box-shadow:0 0 20px rgba(var(--danger-rgb, 239, 68, 68),.15)}.confirm-dialog-icon.warning{background:#facc151f;color:#facc15;box-shadow:0 0 20px #facc1526}@keyframes confirm-icon-pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.confirm-dialog-message{margin:0;font-family:var(--font-body);font-size:.925rem;color:var(--text-secondary);line-height:1.6;max-width:380px}.confirm-dialog-actions{display:flex;gap:.75rem;margin-top:.5rem;width:100%;justify-content:center}.confirm-btn{padding:.6rem 1.5rem;font-family:var(--font-body);font-size:.875rem;font-weight:600;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast) ease,color var(--transition-fast) ease,box-shadow var(--transition-fast) ease,transform var(--transition-fast) ease,border-color var(--transition-fast) ease}.confirm-btn:active{transform:scale(.96)}.confirm-btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text-secondary)}.confirm-btn-ghost:hover{background:var(--bg-secondary);border-color:var(--border-hover);color:var(--text-primary)}.confirm-btn-danger{background:var(--danger);border:1px solid var(--danger);color:#fff}.confirm-btn-danger:hover{background:var(--danger-hover);border-color:var(--danger-hover);box-shadow:0 0 20px rgba(var(--danger-rgb, 239, 68, 68),.3)}.confirm-btn-warning{background:#facc15;border:1px solid #facc15;color:#1a1a2e}.confirm-btn-warning:hover{background:#fbbf24;border-color:#fbbf24;box-shadow:0 0 20px #facc154d}.character-profile-page{padding-bottom:4rem;position:relative;min-height:100vh}.character-profile-page:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 30%,var(--dynamic-bg-color, transparent) 0%,transparent 70%);opacity:.15;animation:dynamicBgBreath 10s ease-in-out infinite alternate;transition:background .5s ease}@keyframes dynamicBgBreath{0%{transform:scale(1);opacity:.1}to{transform:scale(1.1);opacity:.25}}.profile-not-found{padding-top:calc(var(--nav-height) + 4rem)}.profile-not-found h2{font-size:2rem;margin-bottom:1rem}.profile-not-found .mt-4{margin-top:2rem;padding:.75rem 1.5rem;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);font-weight:600;cursor:pointer}.profile-tabs{display:flex;gap:.5rem;padding:.5rem;margin-bottom:2rem;overflow-x:auto;border:1px solid var(--border);background:var(--bg-elevated)}.about-tab-layout{display:grid;grid-template-columns:1fr;gap:1.5rem;align-items:start}@media (min-width: 768px){.about-tab-layout.has-stats{grid-template-columns:2fr 1fr}}.profile-tabs::-webkit-scrollbar{display:none}.tab-btn{padding:.75rem 1.5rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-weight:600;font-size:1rem;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:.5rem;white-space:nowrap}.tab-btn:hover{color:var(--text-primary);background:var(--bg-elevated)}.tab-btn.active{color:var(--accent);background:var(--accent-glow)}.tab-count{font-size:.75rem;background:var(--bg-primary);color:var(--text-muted);padding:.125rem .375rem;border-radius:1rem;transition:background var(--transition-fast)}.tab-btn.active .tab-count{background:#fff;color:var(--accent)}[data-theme=dark] .tab-btn.active .tab-count{background:var(--bg-elevated)}.tab-content{min-height:400px}.custom-field-editor{display:flex;flex-direction:column;gap:1rem}.field-suggestions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}.btn-suggestion{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);border-radius:1rem;padding:.25rem .75rem;font-size:.75rem;cursor:pointer;transition:all var(--transition-fast)}.btn-suggestion:hover:not(:disabled){background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.btn-suggestion:disabled{opacity:.5;cursor:not-allowed}.fields-list{display:flex;flex-direction:column;gap:.75rem}.field-row{display:flex;gap:.5rem;align-items:center}.field-input{padding:.5rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body)}.field-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.label-input{flex:0 0 30%;font-weight:500}.value-input{flex:1}.btn-remove-field{width:2rem;height:2rem;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;color:var(--text-muted);font-size:1.25rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.btn-remove-field:hover{background:var(--danger-hover);color:var(--danger)}.btn-add-field{align-self:flex-start;background:transparent;border:1px dashed var(--accent);color:var(--accent);padding:.5rem 1rem;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:all var(--transition-fast);margin-top:.5rem}.btn-add-field:hover{background:var(--accent-glow)}@media (max-width: 600px){.field-row{flex-wrap:wrap}.label-input{flex:1 1 100%}.btn-remove-field{flex:0 0 auto}}.tag-input-wrapper{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem .75rem;min-height:46px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);cursor:text;transition:border-color var(--transition-fast) ease,box-shadow var(--transition-fast) ease;position:relative}.tag-input-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.tag-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .55rem;background:linear-gradient(135deg,rgba(var(--accent-rgb, 99, 102, 241),.18),rgba(var(--accent-rgb, 99, 102, 241),.08));border:1px solid rgba(var(--accent-rgb, 99, 102, 241),.22);border-radius:var(--radius-lg);font-family:var(--font-body);font-size:.8rem;font-weight:500;color:var(--text-primary);white-space:nowrap;animation:tag-pop-in .2s cubic-bezier(.34,1.56,.64,1)}@keyframes tag-pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.tag-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;border-radius:50%;color:var(--text-muted);font-size:.7rem;line-height:1;cursor:pointer;transition:background var(--transition-fast) ease,color var(--transition-fast) ease}.tag-chip-remove:hover{background:rgba(var(--accent-rgb, 99, 102, 241),.25);color:var(--text-primary)}.tag-input-field{flex:1 1 100px;min-width:80px;padding:.2rem 0;background:transparent;border:none;outline:none;font-family:var(--font-body);font-size:.875rem;color:var(--text-primary)}.tag-input-field::placeholder{color:var(--text-muted)}.tag-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:180px;overflow-y:auto;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;animation:suggestions-slide .2s cubic-bezier(.16,1,.3,1)}@keyframes suggestions-slide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.tag-suggestions::-webkit-scrollbar{width:5px}.tag-suggestions::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.tag-suggestion-item{padding:.55rem .85rem;font-family:var(--font-body);font-size:.85rem;color:var(--text-secondary);cursor:pointer;transition:background var(--transition-fast) ease,color var(--transition-fast) ease}.tag-suggestion-item:hover,.tag-suggestion-item.active{background:var(--bg-elevated);color:var(--text-primary)}.tag-suggestion-item.active{background:rgba(var(--accent-rgb, 99, 102, 241),.1)}/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media (pointer: coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0px}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0px;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.rich-text-editor-container{border-radius:var(--radius-sm);background:var(--bg-elevated);border:1px solid var(--border);overflow:hidden}.ql-toolbar.ql-snow{border:none!important;border-bottom:1px solid var(--border)!important;background:#ffffff0d;padding:8px!important}.ql-container.ql-snow{border:none!important;font-family:var(--font-body)!important;font-size:1rem!important;color:var(--text)!important;min-height:150px}.ql-editor.ql-blank:before{color:#ffffff4d!important;font-style:normal!important}.ql-snow .ql-stroke{stroke:var(--text-secondary)!important}.ql-snow .ql-fill{fill:var(--text-secondary)!important}.ql-snow .ql-picker{color:var(--text-secondary)!important}.ql-snow .ql-picker-options{background:var(--bg-card)!important;border-color:var(--border)!important}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke{stroke:var(--accent)!important}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill{fill:var(--accent)!important}.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-snow .ql-picker-item:hover,.ql-snow .ql-picker-item.ql-selected{color:var(--accent)!important}.character-editor-page{padding-top:calc(var(--nav-height) + 2rem);padding-bottom:6rem;animation:slideUp var(--transition-normal) ease-out}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.editor-header h1{margin:0;font-size:2rem}.editor-actions{display:flex;gap:1rem}.editor-section{padding:2rem;margin-bottom:2rem;background-color:var(--bg-card);border:1px solid var(--border)}.editor-section h2{margin-top:0;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);font-size:1.25rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.span-full{grid-column:1 / -1}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background-color:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);transition:all var(--transition-fast)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.avatar-upload-row,.banner-upload-row{display:flex;gap:1rem;align-items:flex-start}.avatar-preview,.banner-preview{position:relative;flex-shrink:0;border:1px solid var(--border);background:var(--bg-elevated);overflow:hidden}.avatar-preview{width:120px;height:120px}.banner-preview{width:100%;max-width:300px;height:120px}.avatar-preview img,.banner-preview img{width:100%;height:100%;object-fit:cover}.btn-remove-image{position:absolute;top:.25rem;right:.25rem;width:24px;height:24px;border-radius:50%;background:#00000080;color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast)}.btn-remove-image:hover{background:var(--danger)}@media (max-width: 768px){.form-grid{grid-template-columns:1fr}.avatar-upload-row,.banner-upload-row{flex-direction:column}}.editor-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-top:1.25rem}.editor-gallery-item{position:relative;overflow:hidden;border:1px solid var(--border);background:var(--bg-elevated);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.editor-gallery-item:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.editor-gallery-item img{width:100%;height:140px;object-fit:cover;display:block}.editor-gallery-caption{width:100%;padding:8px 10px;border:none;border-top:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);font-size:.8rem;outline:none;transition:background var(--transition-fast)}.editor-gallery-caption:focus{background:var(--bg-card);box-shadow:inset 0 0 0 1px var(--accent)}.editor-gallery-remove{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);color:#fff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.75rem;font-weight:700;opacity:0;transition:all var(--transition-fast)}.editor-gallery-item:hover .editor-gallery-remove{opacity:1}.editor-gallery-remove:hover{background:var(--danger, #ef4444);transform:scale(1.1)}.settings-page{padding-top:calc(var(--nav-height) + 2rem);padding-bottom:4rem;animation:slideUp var(--transition-normal) ease-out}.settings-page h1{font-size:2rem;margin-bottom:2rem}.settings-grid{display:flex;flex-direction:column;gap:2rem}.settings-section{padding:2rem;background-color:var(--bg-card);border:1px solid var(--border)}.settings-section h2{margin-top:0;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border);font-size:1.25rem}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--border);gap:1rem}.settings-row:last-child{border-bottom:none;padding-bottom:0}.settings-row h3{margin:0 0 .25rem;font-size:1rem}.settings-row p{margin:0;font-size:.875rem}.btn-toggle-theme{padding:.75rem 1.5rem;border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-toggle-theme:hover{background:var(--accent-glow);color:var(--accent);border-color:var(--accent)}.btn-primary{padding:.75rem 1.5rem;border-radius:var(--radius-md);background:var(--accent);color:#fff;border:none;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-2px)}.btn-secondary{padding:.75rem 1.5rem;border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-secondary:hover{background:var(--border-hover)}.btn-danger{padding:.75rem 1.5rem;border-radius:var(--radius-md);background:transparent;color:var(--danger);border:1px solid var(--danger);font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-danger:hover{background:var(--danger);color:#fff}.file-input-wrapper{position:relative;overflow:hidden;display:inline-block}.file-input-wrapper input[type=file]{position:absolute;left:0;top:0;opacity:0;width:100%;height:100%;cursor:pointer}.danger-zone{margin-top:1rem;padding:1.5rem;background:#ff47570d;border:1px solid rgba(255,71,87,.2);border-radius:var(--radius-md)}.danger-zone:last-child{border-bottom:1px solid rgba(255,71,87,.2)}.stats-grid{display:flex;gap:1.5rem}.stat-box{flex:1;padding:1.5rem;background:var(--bg-elevated);border:1px solid var(--border);text-align:center}.stat-value{font-size:2.5rem;font-weight:700;color:var(--accent);margin-bottom:.5rem;font-family:var(--font-heading)}.stat-label{font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}@media (max-width: 600px){.settings-row{flex-direction:column;align-items:flex-start}.settings-row button,.file-input-wrapper{width:100%}.btn-toggle-theme,.btn-primary,.btn-secondary,.btn-danger{width:100%;text-align:center}}.login-page{min-height:calc(100vh - var(--nav-height));display:flex;align-items:center;justify-content:center;padding:2rem;animation:slideUp var(--transition-normal) ease-out}.login-card{width:100%;max-width:400px;padding:2.5rem;background-color:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.login-card h1{font-size:1.75rem;margin-bottom:.5rem}.mb-4{margin-bottom:1.5rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:var(--text-secondary);font-size:.875rem}.form-group input{padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border);background-color:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-body);transition:all var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.login-btn{margin-top:.5rem;width:100%;padding:.875rem;font-size:1rem}.login-btn:disabled{opacity:.7;cursor:not-allowed}.shared-badge{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#8b5cf626,#3b82f61a);border-bottom:1px solid rgba(139,92,246,.25);color:var(--accent, #8b5cf6);font-size:.85rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:relative;z-index:10}.shared-badge__icon{font-size:1rem}.shared-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}.shared-loading__spinner{width:40px;height:40px;border:3px solid rgba(139,92,246,.2);border-top-color:var(--accent, #8b5cf6);border-radius:50%;animation:shared-spin .8s linear infinite}@keyframes shared-spin{to{transform:rotate(360deg)}}.shared-character-page .profile-header__actions{display:none!important}.directory-header{padding:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.search-box{flex:1;min-width:250px;max-width:400px}.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.artist-card{display:flex;flex-direction:column;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.artist-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#7c5bf566}.artist-preview{height:160px;background-size:cover;background-position:center;position:relative}.artist-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 60%);display:flex;align-items:flex-end;padding:1rem}.artist-count{background:var(--accent-gradient);color:#fff;padding:4px 10px;border-radius:100px;font-size:.75rem;font-weight:700;box-shadow:var(--shadow-sm)}.artist-details{padding:1.25rem;flex:1;display:flex;flex-direction:column}.artist-name{margin-bottom:.75rem;font-size:1.2rem}.artist-link{color:var(--accent);text-decoration:none;transition:opacity .2s ease}.artist-link:hover{opacity:.8;text-decoration:underline}.artist-characters{margin-top:auto}.character-tags{display:flex;flex-wrap:wrap;gap:.4rem}.char-tag{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-secondary);padding:2px 8px;border-radius:4px;font-size:.75rem}@media (max-width: 600px){.directory-header{flex-direction:column;align-items:stretch;text-align:center}.directory-header h1{justify-content:center}.search-box{max-width:none}}:root{--bg-primary: #f8f6ff;--bg-secondary: #f0ecfa;--bg-card: rgba(255, 255, 255, .85);--bg-elevated: rgba(255, 255, 255, .95);--text-primary: #1a1625;--text-secondary: #4a4458;--text-muted: #8e85a3;--accent: #7c5bf5;--accent-hover: #6344d4;--accent-glow: rgba(124, 91, 245, .35);--accent-gradient: linear-gradient(135deg, #7c5bf5 0%, #b44aff 50%, #ff6ec7 100%);--border: rgba(124, 91, 245, .12);--border-hover: rgba(124, 91, 245, .3);--danger: #ef4444;--danger-hover: #dc2626;--success: #22c55e;--shadow-sm: 0 1px 3px rgba(26, 22, 37, .06), 0 1px 2px rgba(26, 22, 37, .04);--shadow-md: 0 4px 12px rgba(26, 22, 37, .08), 0 2px 6px rgba(26, 22, 37, .04);--shadow-lg: 0 12px 40px rgba(26, 22, 37, .12), 0 4px 16px rgba(26, 22, 37, .06);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s cubic-bezier(.4, 0, .2, 1);--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-heading: "Outfit", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(255, 255, 255, .4);--glass-blur: 20px;--z-sidebar: 100;--z-navbar: 200;--z-modal-overlay: 300;--z-modal: 400;--z-toast: 500}[data-theme=light-beach]{--bg-primary: #f0fafa;--bg-secondary: #e0f4f4;--bg-card: rgba(255, 255, 255, .85);--bg-elevated: rgba(255, 255, 255, .95);--text-primary: #0f2b2b;--text-secondary: #2d5555;--text-muted: #6b9e9e;--accent: #0d9488;--accent-hover: #0f766e;--accent-glow: rgba(13, 148, 136, .3);--accent-gradient: linear-gradient(135deg, #0d9488 0%, #06b6d4 50%, #3b82f6 100%);--border: rgba(13, 148, 136, .15);--border-hover: rgba(13, 148, 136, .35);--danger: #ef4444;--danger-hover: #dc2626;--success: #22c55e;--shadow-sm: 0 1px 3px rgba(15, 43, 43, .06), 0 1px 2px rgba(15, 43, 43, .04);--shadow-md: 0 4px 12px rgba(15, 43, 43, .08), 0 2px 6px rgba(15, 43, 43, .04);--shadow-lg: 0 12px 40px rgba(15, 43, 43, .12), 0 4px 16px rgba(15, 43, 43, .06);--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(13, 148, 136, .15);--glass-blur: 20px}[data-theme=light-rose]{--bg-primary: #fff5f7;--bg-secondary: #ffe4e9;--bg-card: rgba(255, 255, 255, .85);--bg-elevated: rgba(255, 255, 255, .95);--text-primary: #2a1215;--text-secondary: #6b3040;--text-muted: #b0708a;--accent: #e11d48;--accent-hover: #be123c;--accent-glow: rgba(225, 29, 72, .25);--accent-gradient: linear-gradient(135deg, #e11d48 0%, #f97316 50%, #eab308 100%);--border: rgba(225, 29, 72, .12);--border-hover: rgba(225, 29, 72, .3);--danger: #ef4444;--danger-hover: #dc2626;--success: #22c55e;--shadow-sm: 0 1px 3px rgba(42, 18, 21, .06), 0 1px 2px rgba(42, 18, 21, .04);--shadow-md: 0 4px 12px rgba(42, 18, 21, .08), 0 2px 6px rgba(42, 18, 21, .04);--shadow-lg: 0 12px 40px rgba(42, 18, 21, .12), 0 4px 16px rgba(42, 18, 21, .06);--glass-bg: rgba(255, 255, 255, .6);--glass-border: rgba(225, 29, 72, .12);--glass-blur: 20px}[data-theme=dark]{--bg-primary: #0d0a1a;--bg-secondary: #141024;--bg-card: rgba(22, 17, 40, .85);--bg-elevated: rgba(30, 24, 54, .95);--text-primary: #f0ecfa;--text-secondary: #b8b0cc;--text-muted: #6b6183;--accent: #9678ff;--accent-hover: #b49aff;--accent-glow: rgba(150, 120, 255, .3);--accent-gradient: linear-gradient(135deg, #9678ff 0%, #c76aff 50%, #ff7ed4 100%);--border: rgba(150, 120, 255, .12);--border-hover: rgba(150, 120, 255, .35);--danger: #f87171;--danger-hover: #ef4444;--success: #4ade80;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .3);--glass-bg: rgba(22, 17, 40, .55);--glass-border: rgba(150, 120, 255, .1);--glass-blur: 24px}[data-theme=dark-beach]{--bg-primary: #04121a;--bg-secondary: #0a1b26;--bg-card: rgba(10, 27, 38, .85);--bg-elevated: rgba(15, 35, 48, .95);--text-primary: #e6f4f1;--text-secondary: #a3c4c9;--text-muted: #5e838c;--accent: #2dd4bf;--accent-hover: #5eead4;--accent-glow: rgba(45, 212, 191, .3);--accent-gradient: linear-gradient(135deg, #2dd4bf 0%, #3b82f6 50%, #8b5cf6 100%);--border: rgba(45, 212, 191, .12);--border-hover: rgba(45, 212, 191, .35);--danger: #f87171;--danger-hover: #ef4444;--success: #4ade80;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .3);--glass-bg: rgba(10, 27, 38, .55);--glass-border: rgba(45, 212, 191, .1);--glass-blur: 24px}[data-theme=dark-crimson]{--bg-primary: #120505;--bg-secondary: #1a0808;--bg-card: rgba(26, 8, 8, .85);--bg-elevated: rgba(36, 12, 12, .95);--text-primary: #faecec;--text-secondary: #ccb0b0;--text-muted: #836161;--accent: #f43f5e;--accent-hover: #fb7185;--accent-glow: rgba(244, 63, 94, .3);--accent-gradient: linear-gradient(135deg, #f43f5e 0%, #9f1239 50%, #4c0519 100%);--border: rgba(244, 63, 94, .12);--border-hover: rgba(244, 63, 94, .35);--danger: #f87171;--danger-hover: #ef4444;--success: #4ade80;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .35), 0 2px 6px rgba(0, 0, 0, .25);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .3);--glass-bg: rgba(26, 8, 8, .55);--glass-border: rgba(244, 63, 94, .1);--glass-blur: 24px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;scroll-behavior:smooth}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;transition:background-color var(--transition-normal),color var(--transition-normal);overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 80% 60% at 10% 20%,var(--accent-glow) 0%,transparent 60%),radial-gradient(ellipse 60% 80% at 90% 80%,rgba(180,74,255,.08) 0%,transparent 55%),radial-gradient(ellipse 50% 50% at 50% 50%,rgba(255,110,199,.04) 0%,transparent 60%);pointer-events:none;transition:opacity var(--transition-normal)}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.2;letter-spacing:-.02em}p{color:var(--text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:100px;border:2px solid transparent;background-clip:padding-box;transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover);background-clip:padding-box}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}.container{width:100%;max-width:1440px;margin-inline:auto;padding-inline:24px}@media (max-width: 768px){.container{padding-inline:16px}}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.flex-col{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}.gap-xs{gap:4px}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.gap-xl{gap:32px}.grid{display:grid}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}@media (max-width: 768px){.grid-2,.grid-3{grid-template-columns:1fr}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-gradient{background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-md)}.glass-elevated{background:var(--bg-elevated);backdrop-filter:blur(32px);-webkit-backdrop-filter:blur(32px);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glowPulse{0%,to{box-shadow:0 0 8px var(--accent-glow)}50%{box-shadow:0 0 20px var(--accent-glow),0 0 40px #7c5bf51a}}@keyframes borderGlow{0%,to{border-color:var(--border)}50%{border-color:var(--border-hover)}}.animate-fadeIn{animation:fadeIn .4s ease-out both}.animate-slideUp{animation:slideUp .5s cubic-bezier(.16,1,.3,1) both}.animate-slideDown{animation:slideDown .5s cubic-bezier(.16,1,.3,1) both}.animate-scaleIn{animation:scaleIn .4s cubic-bezier(.16,1,.3,1) both}.animate-float{animation:float 4s ease-in-out infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-shimmer{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-card) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.delay-1{animation-delay:50ms}.delay-2{animation-delay:.1s}.delay-3{animation-delay:.15s}.delay-4{animation-delay:.2s}.delay-5{animation-delay:.25s}.toast-container{position:fixed;bottom:24px;right:24px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{pointer-events:all;display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:var(--radius-md);background:var(--bg-elevated);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);font-size:.9rem;font-weight:500;color:var(--text-primary);animation:slideUp .4s cubic-bezier(.16,1,.3,1) both;max-width:380px;min-width:260px}.toast--success{border-left:3px solid var(--success)}.toast--error{border-left:3px solid var(--danger)}.toast--info{border-left:3px solid var(--accent)}.toast--exiting{animation:fadeOut .3s ease-in both}.toast__icon{flex-shrink:0;width:20px;height:20px}.toast__message{flex:1;line-height:1.4}.toast__close{flex-shrink:0;padding:4px;border-radius:var(--radius-sm);color:var(--text-muted);transition:color var(--transition-fast),background var(--transition-fast)}.toast__close:hover{color:var(--text-primary);background:var(--border)}@media (max-width: 480px){.toast-container{left:16px;right:16px;bottom:16px}.toast{max-width:100%}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.9rem;font-weight:500;line-height:1;transition:all var(--transition-fast);position:relative;overflow:hidden;white-space:nowrap}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 12px var(--accent-glow)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 20px var(--accent-glow)}.btn-primary:active{transform:translateY(0);box-shadow:0 1px 8px var(--accent-glow)}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg-elevated)}.btn-ghost{color:var(--text-secondary);background:transparent}.btn-ghost:hover{color:var(--text-primary);background:var(--border)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:6px 12px;font-size:.8rem;border-radius:var(--radius-sm)}.btn-lg{padding:14px 28px;font-size:1rem;border-radius:var(--radius-lg)}.btn-icon{padding:8px;border-radius:var(--radius-md)}.input,.input-field{width:100%;padding:10px 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-card);color:var(--text-primary);font-size:.9rem;transition:all var(--transition-fast);outline:none}.input:hover,.input-field:hover{border-color:var(--border-hover)}.input:focus,.input-field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::placeholder,.input-field::placeholder{color:var(--text-muted)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-hover)}.card-interactive:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;border-radius:100px;background:var(--accent-glow);color:var(--accent);letter-spacing:.02em}.divider{width:100%;height:1px;background:var(--border);border:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal-overlay);background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fadeIn .2s ease-out both}.modal{width:100%;max-width:520px;max-height:90vh;overflow-y:auto;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);animation:scaleIn .3s cubic-bezier(.16,1,.3,1) both}::selection{background:var(--accent-glow);color:var(--text-primary)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.sortable-drag-handle{position:absolute;top:.5rem;left:.5rem;z-index:20;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#ffffffe6;width:30px;height:30px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:grab;transition:background .15s ease,transform .15s ease;touch-action:none}.sortable-drag-handle:hover{background:#000000bf;transform:scale(1.1)}.sortable-drag-handle:active{cursor:grabbing;background:var(--accent)}
