:root{overflow-wrap:break-word;text-size-adjust:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--tt-gray-light-a-50:rgba(56,56,56,.04);--tt-gray-light-a-100:rgba(15,22,36,.05);--tt-gray-light-a-200:rgba(37,39,45,.1);--tt-gray-light-a-300:rgba(47,50,55,.2);--tt-gray-light-a-400:rgba(40,44,51,.42);--tt-gray-light-a-500:rgba(52,55,60,.64);--tt-gray-light-a-600:rgba(36,39,46,.78);--tt-gray-light-a-700:rgba(35,37,42,.87);--tt-gray-light-a-800:rgba(30,32,36,.95);--tt-gray-light-a-900:rgba(29,30,32,.98);--tt-gray-light-50:#fafafa;--tt-gray-light-100:#f4f4f5;--tt-gray-light-200:#eaeaeb;--tt-gray-light-300:#d5d6d7;--tt-gray-light-400:#a6a7ab;--tt-gray-light-500:#7d7f82;--tt-gray-light-600:#53565a;--tt-gray-light-700:#404145;--tt-gray-light-800:#2c2d30;--tt-gray-light-900:#222325;--tt-gray-dark-a-50:rgba(232,232,253,.05);--tt-gray-dark-a-100:rgba(231,231,243,.07);--tt-gray-dark-a-200:rgba(238,238,246,.11);--tt-gray-dark-a-300:rgba(239,239,245,.22);--tt-gray-dark-a-400:rgba(244,244,255,.37);--tt-gray-dark-a-500:rgba(236,238,253,.5);--tt-gray-dark-a-600:rgba(247,247,253,.64);--tt-gray-dark-a-700:rgba(251,251,254,.75);--tt-gray-dark-a-800:hsla(0,0%,99%,.88);--tt-gray-dark-a-900:hsla(0,0%,100%,.96);--tt-gray-dark-50:#19191a;--tt-gray-dark-100:#202022;--tt-gray-dark-200:#2d2d2f;--tt-gray-dark-300:#464649;--tt-gray-dark-400:#636369;--tt-gray-dark-500:#7c7c83;--tt-gray-dark-600:#a3a3a8;--tt-gray-dark-700:#c0c0c3;--tt-gray-dark-800:#e0e0e1;--tt-gray-dark-900:#f5f5f5;--tt-brand-color-50:#efeeff;--tt-brand-color-100:#dedbff;--tt-brand-color-200:#c3bdff;--tt-brand-color-300:#9d8aff;--tt-brand-color-400:#7a52ff;--tt-brand-color-500:#6229ff;--tt-brand-color-600:#5400e5;--tt-brand-color-700:#4b00cc;--tt-brand-color-800:#380099;--tt-brand-color-900:#2b1966;--tt-brand-color-950:#0d002e;--tt-color-green-inc-5:#f0fff2;--tt-color-green-inc-4:#d6ffdc;--tt-color-green-inc-3:#b8ffc5;--tt-color-green-inc-2:#90fea8;--tt-color-green-inc-1:#67fe92;--tt-color-green-base:#01fe73;--tt-color-green-dec-1:#03ce5e;--tt-color-green-dec-2:#02a247;--tt-color-green-dec-3:#007a35;--tt-color-green-dec-4:#005221;--tt-color-green-dec-5:#002e0f;--tt-color-yellow-inc-5:#fffcf0;--tt-color-yellow-inc-4:#fff7d1;--tt-color-yellow-inc-3:#fff1ad;--tt-color-yellow-inc-2:#ffeb8a;--tt-color-yellow-inc-1:#ffe45c;--tt-color-yellow-base:#fd0;--tt-color-yellow-dec-1:#d1b500;--tt-color-yellow-dec-2:#a38d00;--tt-color-yellow-dec-3:#7a6a00;--tt-color-yellow-dec-4:#524500;--tt-color-yellow-dec-5:#2e2600;--tt-color-red-inc-5:#ffeeeb;--tt-color-red-inc-4:#ffcdc2;--tt-color-red-inc-3:#fa9;--tt-color-red-inc-2:#ff8a75;--tt-color-red-inc-1:#ff5d47;--tt-color-red-base:#ff3014;--tt-color-red-dec-1:#d11800;--tt-color-red-dec-2:#a30e00;--tt-color-red-dec-3:#7a0800;--tt-color-red-dec-4:#520400;--tt-color-red-dec-5:#2e0100;--white:#fff;--black:#0e0e11;--transparent:hsla(0,0%,100%,0);--tt-shadow-elevated-md:0px 16px 48px 0px rgba(17,24,39,.04),0px 12px 24px 0px rgba(17,24,39,.04),0px 6px 8px 0px rgba(17,24,39,.02),0px 2px 3px 0px rgba(17,24,39,.02);--tt-radius-xxs:0.125rem;--tt-radius-xs:0.25rem;--tt-radius-sm:0.375rem;--tt-radius-md:0.5rem;--tt-radius-lg:0.75rem;--tt-radius-xl:1rem;--tt-transition-duration-short:0.1s;--tt-transition-duration-default:0.2s;--tt-transition-duration-long:0.64s;--tt-transition-easing-default:cubic-bezier(0.46,0.03,0.52,0.96);--tt-transition-easing-cubic:cubic-bezier(0.65,0.05,0.36,1);--tt-transition-easing-quart:cubic-bezier(0.77,0,0.18,1);--tt-transition-easing-circ:cubic-bezier(0.79,0.14,0.15,0.86);--tt-transition-easing-back:cubic-bezier(0.68,-0.55,0.27,1.55);--tt-accent-contrast:8%;--tt-destructive-contrast:8%;--tt-foreground-contrast:8%}:root,:root *,:root :after,:root :before{box-sizing:border-box;transition:none var(--tt-transition-duration-default) var(--tt-transition-easing-default)}:root{--tt-bg-color:var(--white);--tt-border-color:var(--tt-gray-light-a-200);--tt-border-color-tint:var(--tt-gray-light-a-100);--tt-sidebar-bg-color:var(--tt-gray-light-100);--tt-scrollbar-color:var(--tt-gray-light-a-200);--tt-cursor-color:var(--tt-brand-color-500);--tt-selection-color:rgba(157,138,255,.2);--tt-card-bg-color:var(--white);--tt-card-border-color:var(--tt-gray-light-a-100)}.dark{--tt-bg-color:var(--black);--tt-border-color:var(--tt-gray-dark-a-200);--tt-border-color-tint:var(--tt-gray-dark-a-100);--tt-sidebar-bg-color:var(--tt-gray-dark-100);--tt-scrollbar-color:var(--tt-gray-dark-a-200);--tt-cursor-color:var(--tt-brand-color-400);--tt-selection-color:rgba(122,82,255,.2);--tt-card-bg-color:var(--tt-gray-dark-50);--tt-card-border-color:var(--tt-gray-dark-a-50);--tt-shadow-elevated-md:0px 16px 48px 0px rgba(0,0,0,.5),0px 12px 24px 0px rgba(0,0,0,.24),0px 6px 8px 0px rgba(0,0,0,.22),0px 2px 3px 0px rgba(0,0,0,.12)}:root{--tt-color-text-gray:#787673;--tt-color-text-brown:#9d6a53;--tt-color-text-orange:#d9730d;--tt-color-text-yellow:#ca922f;--tt-color-text-green:#448361;--tt-color-text-blue:#327da9;--tt-color-text-purple:#8f64af;--tt-color-text-pink:#c24c8b;--tt-color-text-red:#d34a45;--tt-color-text-gray-contrast:rgba(84,71,49,.15);--tt-color-text-brown-contrast:hsla(18,43%,69%,.35);--tt-color-text-orange-contrast:rgba(224,123,56,.27);--tt-color-text-yellow-contrast:rgba(236,190,65,.39);--tt-color-text-green-contrast:rgba(123,183,129,.27);--tt-color-text-blue-contrast:rgba(94,166,207,.27);--tt-color-text-purple-contrast:rgba(168,129,197,.27);--tt-color-text-pink-contrast:rgba(225,137,180,.27);--tt-color-text-red-contrast:hsla(8,79%,79%,.4)}.dark{--tt-color-text-gray:#9c9c9c;--tt-color-text-brown:#b9856e;--tt-color-text-orange:#c77d48;--tt-color-text-yellow:#ca994e;--tt-color-text-green:#519e71;--tt-color-text-blue:#3699d3;--tt-color-text-purple:#9e69d3;--tt-color-text-pink:#d15796;--tt-color-text-red:#df5553;--tt-color-text-gray-contrast:hsla(0,0%,100%,.09);--tt-color-text-brown-contrast:rgba(185,103,70,.25);--tt-color-text-orange-contrast:rgba(233,125,37,.2);--tt-color-text-yellow-contrast:rgba(179,130,61,.2);--tt-color-text-green-contrast:rgba(45,154,101,.2);--tt-color-text-blue-contrast:rgba(50,125,169,.2);--tt-color-text-purple-contrast:rgba(155,96,210,.18);--tt-color-text-pink-contrast:rgba(220,76,146,.22);--tt-color-text-red-contrast:rgba(221,85,85,.25)}:root{--tt-color-highlight-yellow:#fef9c3;--tt-color-highlight-green:#dcfce7;--tt-color-highlight-blue:#e0f2fe;--tt-color-highlight-purple:#f3e8ff;--tt-color-highlight-red:#ffe4e6;--tt-color-highlight-gray:#f8f8f7;--tt-color-highlight-brown:#f4eeee;--tt-color-highlight-orange:#fbecdd;--tt-color-highlight-pink:#fcf1f6;--tt-color-highlight-yellow-contrast:#fbe604;--tt-color-highlight-green-contrast:#c7fad8;--tt-color-highlight-blue-contrast:#ceeafd;--tt-color-highlight-purple-contrast:#e4ccff;--tt-color-highlight-red-contrast:#ffccd0;--tt-color-highlight-gray-contrast:rgba(84,72,49,.15);--tt-color-highlight-brown-contrast:hsla(18,43%,69%,.35);--tt-color-highlight-orange-contrast:rgba(224,124,57,.27);--tt-color-highlight-pink-contrast:rgba(225,136,179,.27)}.dark{--tt-color-highlight-yellow:#6b6524;--tt-color-highlight-green:#509568;--tt-color-highlight-blue:#6e92aa;--tt-color-highlight-purple:#583e74;--tt-color-highlight-red:#743e42;--tt-color-highlight-gray:#2f2f2f;--tt-color-highlight-brown:#4a3228;--tt-color-highlight-orange:#5c3b23;--tt-color-highlight-pink:#4e2c3c;--tt-color-highlight-yellow-contrast:#58531e;--tt-color-highlight-green-contrast:#47855d;--tt-color-highlight-blue-contrast:#5e86a1;--tt-color-highlight-purple-contrast:#4c3564;--tt-color-highlight-red-contrast:#643539;--tt-color-highlight-gray-contrast:hsla(0,0%,100%,.094);--tt-color-highlight-brown-contrast:rgba(184,101,69,.25);--tt-color-highlight-orange-contrast:rgba(233,126,37,.2);--tt-color-highlight-pink-contrast:rgba(220,76,145,.22)}.characters-gallery{min-height:100vh;padding:32px 24px 60px;max-width:1400px;margin:0 auto;position:relative}.characters-gallery:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");opacity:.015;pointer-events:none;z-index:0}.gallery-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:48px;position:relative;z-index:1}@media(max-width:640px){.gallery-header{flex-direction:column;align-items:flex-start;gap:16px}}.gallery-header__info{display:flex;align-items:baseline;gap:16px}.gallery-header__title{font-size:32px;font-weight:800;letter-spacing:-.02em;color:#faf8f5;line-height:1}.gallery-header__meta{display:flex;align-items:center;gap:10px;font-size:13px;color:hsla(36,33%,97%,.45)}.gallery-header__meta a{color:hsla(36,33%,97%,.55);text-decoration:none;transition:color .25s ease}.gallery-header__meta a:hover{color:hsla(36,33%,97%,.85)}.gallery-header__dot{width:3px;height:3px;background:hsla(36,33%,97%,.25);border-radius:50%}.gallery-header__actions{display:flex;gap:10px;flex-shrink:0}.gallery-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:8px;border:1px solid hsla(36,33%,97%,.12);background:hsla(36,33%,97%,.04);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:hsla(36,33%,97%,.8);font-weight:500;font-size:13px;text-decoration:none;cursor:pointer;transition:all .2s ease}.gallery-btn svg{width:16px;height:16px;opacity:.7}.gallery-btn:hover{background:hsla(36,33%,97%,.08);border-color:hsla(36,33%,97%,.18);color:#faf8f5}.gallery-btn:hover svg{opacity:.9}.gallery-btn--primary{background:hsla(36,33%,97%,.9);border-color:transparent;color:#1a1a1c}.gallery-btn--primary svg{opacity:.8}.gallery-btn--primary:hover{background:#faf8f5;color:#0a0a0a;box-shadow:0 4px 20px rgba(0,0,0,.25)}.gallery-btn--primary:hover svg{opacity:1}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:20px;gap:20px;position:relative;z-index:1}@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:16px}}@media(max-width:520px){.gallery-grid{grid-template-columns:1fr;gap:14px}}.gallery-empty{grid-column:1/-1;text-align:center;padding:80px 24px;border:1px dashed hsla(0,0%,100%,.1);border-radius:24px;background:hsla(0,0%,100%,.02)}.gallery-empty__icon{width:64px;height:64px;margin:0 auto 20px;opacity:.4}.gallery-empty__title{font-size:20px;font-weight:800;margin-bottom:8px;color:hsla(0,0%,100%,.9)}.gallery-empty__text{font-size:14px;color:hsla(0,0%,100%,.5);max-width:300px;margin:0 auto;line-height:1.5}.gallery-card{position:relative;border-radius:12px;overflow:hidden;background:rgba(22,22,24,.7);border:1px solid hsla(36,33%,97%,.06);cursor:pointer;transition:all .35s cubic-bezier(.25,.46,.45,.94)}.gallery-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,hsla(36,33%,97%,.03),transparent 50%);opacity:0;transition:opacity .4s ease;z-index:1;pointer-events:none}.gallery-card:hover{transform:translateY(-6px);border-color:hsla(36,33%,97%,.12);box-shadow:0 24px 48px rgba(0,0,0,.4),0 8px 16px rgba(0,0,0,.2)}.gallery-card:hover:before{opacity:1}.gallery-card:hover .gallery-card__image img{transform:scale(1.03);filter:brightness(1.02)}.gallery-card:hover .gallery-card__overlay{opacity:1}.gallery-card:hover .gallery-card__content{background:rgba(18,18,20,.95)}.gallery-card__image{position:relative;aspect-ratio:4/5;overflow:hidden;background:#1a1a1c}.gallery-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.25,.46,.45,.94),filter .5s ease}.gallery-card__gradient{position:absolute;inset:0;background:linear-gradient(180deg,transparent,transparent 55%,rgba(18,18,20,.9));pointer-events:none}.gallery-card__pin{position:absolute;width:6px;height:6px;background:rgba(0,0,0,.7);border:1px solid hsla(36,33%,97%,.08);border-radius:50%;z-index:5;opacity:.6}.gallery-card__pin--tl{top:8px;left:8px}.gallery-card__pin--tr{top:8px;right:8px}.gallery-card__pin--bl{bottom:8px;left:8px}.gallery-card__pin--br{bottom:8px;right:8px}.gallery-card__visibility{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:6px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid hsla(36,33%,97%,.06);font-size:10px;font-weight:500;letter-spacing:.02em;color:hsla(36,33%,97%,.8);text-transform:uppercase;z-index:10}.gallery-card__visibility svg{width:10px;height:10px;opacity:.7}.gallery-card__visibility.private{color:hsla(36,33%,97%,.5)}.gallery-card__overlay{position:absolute;bottom:60px;left:50%;transform:translateX(-50%);display:flex;gap:8px;opacity:0;transition:opacity .3s ease;z-index:15}.gallery-card__action{width:32px;height:32px;border-radius:8px;border:1px solid hsla(36,33%,97%,.12);background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:hsla(36,33%,97%,.9);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.gallery-card__action svg{width:14px;height:14px}.gallery-card__action:hover{background:hsla(36,33%,97%,.9);color:#1a1a1c;border-color:transparent}.gallery-card__content{padding:12px 14px 16px;position:relative;z-index:1;background:rgba(18,18,20,.85);transition:background .3s ease}.gallery-card__name{font-size:14px;font-weight:600;margin-bottom:6px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#faf8f5;letter-spacing:-.01em}.gallery-card__tags{display:flex;flex-wrap:wrap;gap:5px}.gallery-card__tag{font-size:10px;padding:3px 7px;border-radius:4px;background:hsla(36,33%,97%,.06);color:hsla(36,33%,97%,.5);letter-spacing:.01em}.gallery-card__link{position:absolute;inset:0;z-index:5}.gallery-card__delete{position:absolute;top:10px;right:10px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid hsla(36,33%,97%,.1);background:rgba(18,18,20,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:hsla(36,33%,97%,.5);cursor:pointer;z-index:20;opacity:0;transition:all .2s ease}.gallery-card__delete svg{width:14px;height:14px}.gallery-card__delete:hover{background:rgba(180,83,60,.2);border-color:rgba(180,83,60,.35);color:#c77a64}.gallery-card:hover .gallery-card__delete{opacity:1}.delete-modal{position:fixed;inset:0;z-index:3000;display:flex;align-items:center;justify-content:center;padding:20px}.delete-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.delete-modal__content{position:relative;width:100%;max-width:380px;background:#141416;border-radius:16px;border:1px solid hsla(36,33%,97%,.08);padding:28px;text-align:center;z-index:1}.delete-modal__icon{width:48px;height:48px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(180,83,60,.12);color:#c77a64}.delete-modal__icon svg{width:24px;height:24px}.delete-modal__title{font-size:18px;font-weight:700;color:#faf8f5;margin-bottom:12px}.delete-modal__text{font-size:14px;color:hsla(36,33%,97%,.7);line-height:1.5;margin-bottom:8px}.delete-modal__text strong{color:#faf8f5;font-weight:600}.delete-modal__warning{font-size:12px;color:rgba(180,83,60,.9);line-height:1.5;padding:10px 14px;background:rgba(180,83,60,.08);border-radius:8px;border:1px solid rgba(180,83,60,.15);margin-bottom:20px}.delete-modal__error{font-size:12px;color:#c77a64;padding:10px 14px;background:rgba(180,83,60,.1);border-radius:8px;margin-bottom:16px}.delete-modal__actions{display:flex;gap:10px}.delete-modal__btn{flex:1 1;padding:12px 16px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease}.delete-modal__btn--cancel{border:1px solid hsla(36,33%,97%,.12);background:hsla(36,33%,97%,.04);color:hsla(36,33%,97%,.8)}.delete-modal__btn--cancel:hover:not(:disabled){background:hsla(36,33%,97%,.08);border-color:hsla(36,33%,97%,.18)}.delete-modal__btn--delete{border:1px solid rgba(180,83,60,.4);background:rgba(180,83,60,.15);color:#e8a896}.delete-modal__btn--delete:hover:not(:disabled){background:rgba(180,83,60,.25);border-color:rgba(180,83,60,.5)}.delete-modal__btn:disabled{opacity:.5;cursor:not-allowed}.add-character-modal{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px}.add-character-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.add-character-modal__content{position:relative;width:100%;max-width:480px;background:#141416;border-radius:20px;border:1px solid hsla(0,0%,100%,.08);padding:28px;z-index:1}.add-character-modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.add-character-modal__title{font-size:20px;font-weight:800;color:#fff}.add-character-modal__close{width:36px;height:36px;border-radius:50%;border:1px solid hsla(0,0%,100%,.1);background:hsla(0,0%,100%,.05);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.add-character-modal__close svg{width:18px;height:18px}.add-character-modal__close:hover{background:hsla(0,0%,100%,.1)}.add-character-modal__form{display:flex;flex-direction:column;gap:20px}.add-character-modal__preview{width:100px;height:130px;border-radius:12px;background:hsla(0,0%,100%,.05);border:1px dashed hsla(0,0%,100%,.15);overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;transition:all .2s}.add-character-modal__preview:hover{border-color:hsla(0,0%,100%,.3);background:hsla(0,0%,100%,.08)}.add-character-modal__preview img{width:100%;height:100%;object-fit:cover}.add-character-modal__preview-placeholder{font-size:11px;color:hsla(0,0%,100%,.35);text-align:center;padding:8px}.add-character-modal__preview-edit{position:absolute;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.add-character-modal__preview-edit svg{width:24px;height:24px;color:#fff}.add-character-modal__preview:hover .add-character-modal__preview-edit{opacity:1}.add-character-modal__fields{display:flex;gap:20px}.add-character-modal__inputs{flex:1 1;display:flex;flex-direction:column;gap:16px}.add-character-modal__field{display:flex;flex-direction:column;gap:8px}.add-character-modal__label{font-size:13px;font-weight:600;color:hsla(0,0%,100%,.7)}.add-character-modal__input{height:44px;padding:0 14px;border-radius:10px;border:1px solid hsla(36,33%,97%,.1);background:hsla(36,33%,97%,.04);color:#faf8f5;font-size:14px;outline:none;transition:all .2s}.add-character-modal__input:focus{border-color:hsla(36,33%,97%,.25);background:hsla(36,33%,97%,.06)}.add-character-modal__input::placeholder{color:hsla(36,33%,97%,.3)}.add-character-modal__visibility{display:flex;gap:16px}.add-character-modal__radio{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:hsla(36,33%,97%,.8);cursor:pointer}.add-character-modal__radio input{accent-color:#faf8f5}.add-character-modal__upload-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;border:1px solid hsla(0,0%,100%,.15);background:hsla(0,0%,100%,.05);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.add-character-modal__upload-btn input{display:none}.add-character-modal__upload-btn svg{width:16px;height:16px;opacity:.7}.add-character-modal__upload-btn:hover{background:hsla(0,0%,100%,.1)}.add-character-modal__error{padding:12px 14px;border-radius:10px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:#ef4444;font-size:13px}.add-character-modal__actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.add-character-modal__btn{padding:12px 24px;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.add-character-modal__btn--secondary{border:1px solid hsla(0,0%,100%,.12);background:hsla(0,0%,100%,.05);color:#fff}.add-character-modal__btn--secondary:hover{background:hsla(0,0%,100%,.1)}.add-character-modal__btn--primary{border:none;background:hsla(36,33%,97%,.9);color:#1a1a1c}.add-character-modal__btn--primary:hover:not(:disabled){background:#faf8f5;box-shadow:0 4px 16px rgba(0,0,0,.25)}.add-character-modal__btn--primary:disabled{opacity:.5;cursor:not-allowed}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.gallery-card{animation:fadeInUp .5s ease backwards}.gallery-card:first-child{animation-delay:.05s}.gallery-card:nth-child(2){animation-delay:.1s}.gallery-card:nth-child(3){animation-delay:.15s}.gallery-card:nth-child(4){animation-delay:.2s}.gallery-card:nth-child(5){animation-delay:.25s}.gallery-card:nth-child(6){animation-delay:.3s}.gallery-card:nth-child(7){animation-delay:.35s}.gallery-card:nth-child(8){animation-delay:.4s}.gallery-card:nth-child(9){animation-delay:.45s}.gallery-card:nth-child(10){animation-delay:.5s}.gallery-card:nth-child(11){animation-delay:.55s}.gallery-card:nth-child(12){animation-delay:.6s}.gallery-card:nth-child(13){animation-delay:.65s}.gallery-card:nth-child(14){animation-delay:.7s}.gallery-card:nth-child(15){animation-delay:.75s}.gallery-card:nth-child(16){animation-delay:.8s}.gallery-card:nth-child(17){animation-delay:.85s}.gallery-card:nth-child(18){animation-delay:.9s}.gallery-card:nth-child(19){animation-delay:.95s}.gallery-card:nth-child(20){animation-delay:1s}.character-crop-overlay{position:fixed;inset:0;z-index:2500;display:flex;align-items:center;justify-content:center;padding:20px}.character-crop-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.92);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.character-crop-modal{position:relative;width:100%;max-width:520px;background:#0c0c0e;border-radius:16px;border:1px solid hsla(0,0%,100%,.06);overflow:hidden;z-index:1;box-shadow:0 40px 100px rgba(0,0,0,.8),0 0 1px hsla(0,0%,100%,.1)}.character-crop-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid hsla(0,0%,100%,.06)}.character-crop-header__title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:#fff}.character-crop-header__icon{width:20px;height:20px;opacity:.5;display:flex;align-items:center;justify-content:center}.character-crop-header__icon svg{width:100%;height:100%}.character-crop-close{width:32px;height:32px;border-radius:8px;border:1px solid hsla(0,0%,100%,.08);background:hsla(0,0%,100%,.03);color:hsla(0,0%,100%,.5);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.character-crop-close svg{width:16px;height:16px}.character-crop-close:hover{background:hsla(0,0%,100%,.08);color:#fff}.character-crop-area{position:relative;width:100%;height:380px;background:#000}.character-crop-area .character-crop-container{background:#000!important}.character-crop-area .character-crop-selection{border:2px solid hsla(0,0%,100%,.9)!important;box-shadow:0 0 0 9999px rgba(0,0,0,.7),inset 0 0 0 1px rgba(0,0,0,.3)!important}.character-crop-frame{position:absolute;inset:0;pointer-events:none;z-index:10}.character-crop-frame__corner{position:absolute;width:24px;height:24px}.character-crop-frame__corner:after,.character-crop-frame__corner:before{content:"";position:absolute;background:hsla(0,0%,100%,.8)}.character-crop-frame__corner--tl{top:12px;left:12px}.character-crop-frame__corner--tl:before{top:0;left:0;width:2px;height:100%}.character-crop-frame__corner--tl:after{top:0;left:0;width:100%;height:2px}.character-crop-frame__corner--tr{top:12px;right:12px}.character-crop-frame__corner--tr:before{top:0;right:0;width:2px;height:100%}.character-crop-frame__corner--tr:after{top:0;right:0;width:100%;height:2px}.character-crop-frame__corner--bl{bottom:12px;left:12px}.character-crop-frame__corner--bl:before{bottom:0;left:0;width:2px;height:100%}.character-crop-frame__corner--bl:after{bottom:0;left:0;width:100%;height:2px}.character-crop-frame__corner--br{bottom:12px;right:12px}.character-crop-frame__corner--br:before{bottom:0;right:0;width:2px;height:100%}.character-crop-frame__corner--br:after{bottom:0;right:0;width:100%;height:2px}.character-crop-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.06)}.character-crop-zoom{display:flex;align-items:center;gap:8px}.character-crop-slider{position:relative;width:100px;height:4px;background:hsla(0,0%,100%,.1);border-radius:2px;overflow:hidden}.character-crop-slider input[type=range]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.character-crop-slider__fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(90deg,#e5e5e5,#fff);border-radius:2px;transition:width .1s ease;pointer-events:none}.character-crop-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;cursor:pointer;transition:all .2s;font-weight:600}.character-crop-btn--icon{width:32px;height:32px;border-radius:8px;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.08);color:hsla(0,0%,100%,.6)}.character-crop-btn--icon svg{width:16px;height:16px}.character-crop-btn--icon:hover{background:hsla(0,0%,100%,.1);color:#fff}.character-crop-btn--secondary{height:38px;padding:0 16px;border-radius:10px;background:hsla(0,0%,100%,.05);border:1px solid hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.7);font-size:13px}.character-crop-btn--secondary:hover{background:hsla(0,0%,100%,.1);color:#fff}.character-crop-btn--confirm{height:38px;padding:0 20px;border-radius:10px;background:#fff;color:#000;font-size:13px}.character-crop-btn--confirm svg{width:16px;height:16px}.character-crop-btn--confirm:hover:not(:disabled){background:#e5e5e5}.character-crop-btn--confirm:disabled{opacity:.5;cursor:not-allowed}.character-crop-actions{display:flex;gap:10px}.character-crop-hint{text-align:center;padding:12px 20px;font-size:12px;color:hsla(0,0%,100%,.35);border-top:1px solid hsla(0,0%,100%,.04)}.gallery-limit-indicator{position:fixed;bottom:20px;right:20px;display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(18,18,20,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;z-index:100;opacity:.7;transition:opacity .2s ease}.gallery-limit-indicator:hover{opacity:1}.gallery-limit-indicator__bar{width:60px;height:4px;background:hsla(0,0%,100%,.1);border-radius:2px;overflow:hidden}.gallery-limit-indicator__fill{height:100%;background:linear-gradient(90deg,#a78bfa,#c4b5fd);border-radius:2px;transition:width .3s ease}.gallery-limit-indicator__text{font-size:11px;font-weight:500;color:hsla(0,0%,100%,.5);white-space:nowrap}