.char-portrait-wrap{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s ease}.char-portrait-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;opacity:.85;filter:blur(1px);animation:portrait-spin 4.5s linear infinite;pointer-events:none}.char-portrait{border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1.5px solid rgba(255,255,255,.1);overflow:hidden;position:relative;z-index:1;animation:portrait-breathe 5s ease-in-out infinite}.char-portrait-emoji{line-height:1;-webkit-user-select:none;user-select:none;position:relative;z-index:1;filter:drop-shadow(0 1px 4px rgba(0,0,0,.6));animation:emoji-bob 3.6s ease-in-out infinite}.char-card:hover .char-portrait-wrap{transform:scale(1.1)}.char-card:hover .char-portrait-ring{animation-duration:1.4s;opacity:1}@keyframes portrait-spin{to{transform:rotate(360deg)}}@keyframes portrait-breathe{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}@keyframes emoji-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion: reduce){.char-portrait-ring,.char-portrait,.char-portrait-emoji{animation:none}}.char-gallery-section{margin:0 0 28px}.char-gallery-header{display:flex;align-items:baseline;gap:10px;padding:0 20px;margin-bottom:12px}.char-gallery-label{font-size:10px;font-weight:800;letter-spacing:.18em;color:#ffd65b;text-transform:uppercase}.char-gallery-sub{font-size:11px;color:#8d928c;font-weight:400}.char-gallery-scroll{display:flex;gap:10px;overflow-x:auto;padding:4px 20px 8px;scrollbar-width:none;-ms-overflow-style:none}.char-gallery-scroll::-webkit-scrollbar{display:none}.char-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px 10px;background:#ffffff08;border:1px solid rgba(255,255,255,.07);border-radius:14px;cursor:pointer;min-width:84px;flex-shrink:0;transition:background .15s,border-color .15s,transform .12s;text-align:center}.char-card:hover,.char-card:focus-visible{background:#ffffff0f;border-color:#ffffff24;transform:translateY(-2px);outline:none}.char-card:active{transform:translateY(0)}.char-card-info{display:flex;flex-direction:column;gap:2px}.char-card-name{font-size:11px;font-weight:700;letter-spacing:.01em;line-height:1.2}.char-card-arch{font-size:9px;color:#8d928c;font-weight:400;line-height:1.3}.char-narrator-bar{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;margin-bottom:20px;border-radius:12px;border:1px solid;cursor:pointer;text-align:left;background:#0a0e16b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);position:relative;overflow:hidden;transition:opacity .15s}.char-narrator-bar:hover{opacity:.85}.char-narrator-text{display:flex;flex-direction:column;gap:1px;flex-shrink:0}.char-narrator-intro-label{font-size:8px;font-weight:800;letter-spacing:.16em;color:#8d928c;text-transform:uppercase}.char-narrator-name{font-size:11px;font-weight:700;letter-spacing:.02em}.char-narrator-quote{flex:1;font-size:10.5px;color:#c4c8c1;font-style:italic;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.char-narrator-chevron{font-size:16px;color:#555;flex-shrink:0}.char-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:200;display:flex;align-items:flex-end;justify-content:center;animation:charOverlayIn .18s ease}@keyframes charOverlayIn{0%{opacity:0}to{opacity:1}}.char-modal{width:100%;max-width:520px;max-height:90vh;background:#0d1422;border-radius:20px 20px 0 0;overflow-y:auto;scrollbar-width:none;animation:charModalUp .22s cubic-bezier(.34,1.2,.64,1)}.char-modal::-webkit-scrollbar{display:none}@keyframes charModalUp{0%{transform:translateY(60px);opacity:0}to{transform:translateY(0);opacity:1}}.char-modal-hero{position:relative;height:160px;display:flex;align-items:center;justify-content:center;overflow:hidden}.char-modal-hero-glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.char-modal-close{position:absolute;top:14px;right:16px;background:#0006;border:1px solid rgba(255,255,255,.12);border-radius:50%;color:#aaa;font-size:14px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2;transition:background .12s}.char-modal-close:hover{background:#ffffff26}.char-modal-body{padding:20px 22px 40px}.char-modal-archetype{font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;margin-bottom:4px}.char-modal-name{font-size:22px;font-weight:900;color:#dae3f7;margin:0 0 12px;line-height:1.1}.char-modal-meta-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.char-modal-meta-pill{font-size:10px;font-weight:600;color:#8d928c;background:#ffffff0d;border:1px solid rgba(255,255,255,.09);border-radius:20px;padding:3px 10px}.char-modal-bio{font-size:13.5px;line-height:1.65;color:#c4c8c1;margin:0 0 20px}.char-modal-backstory{margin-bottom:12px;font-size:13px;color:#b0b5ae}.char-modal-backstory:last-of-type{margin-bottom:20px}.char-modal-section-label{font-size:9px;font-weight:800;letter-spacing:.16em;color:#555;text-transform:uppercase;margin-bottom:8px;margin-top:16px}.char-modal-signature{font-size:12.5px;font-style:italic;color:#c4c8c1;padding:10px 14px;border-radius:10px;border:1px solid;line-height:1.5}.char-modal-traits{display:flex;flex-wrap:wrap;gap:6px}.char-modal-trait{font-size:10px;font-weight:600;border:1px solid;border-radius:20px;padding:3px 10px;text-transform:capitalize}.char-modal-role{font-size:13px;color:#c4c8c1;line-height:1.5}
