@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap";.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}}.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;left:.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(280px,1fr));gap:1.5rem;padding:.5rem 0}.character-grid__new{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:320px;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(200px,1fr));gap:1rem}}.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:fixed;top:0;left:-100%;bottom:0;width:280px;z-index:100;transition:left var(--transition-normal);background:var(--bg-primary);box-shadow:var(--shadow-lg)}.sidebar-container.open{left: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;aspect-ratio:1;overflow:hidden;cursor:pointer;background-color:var(--bg-elevated);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.gallery-item:hover{transform:translateY(-4px) scale(1.02);box-shadow:var(--shadow-md);border-color:var(--border-hover);z-index:1}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-normal)}.gallery-item:hover 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)}.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;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-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}}.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}.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)}.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}.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;margin-top:-1.5rem;margin-bottom:2rem;padding:.5rem;position:relative;z-index:10;border:1px solid var(--border);background-color:var(--bg-card);overflow-x:auto;scrollbar-width:none}.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}}.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}.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)}.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}: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=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}*,*: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:1280px;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{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{border-color:var(--border-hover)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.input::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}}
