body.character-selecting{overflow:hidden}
.character-selecting #mobile-controls,.character-selecting #players-shortcut,.character-selecting #room-player,.character-selecting #welcome,.character-selecting #context,.character-selecting #walk-route,.character-selecting #speech{display:none!important}
#character-selection{position:fixed;inset:0;z-index:80;overflow:auto;overscroll-behavior:contain;background:radial-gradient(ellipse at 15% 0,#503448 0,transparent 48%),#181421;color:#f6e9e3;padding:32px max(20px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom));box-sizing:border-box}
.character-shell{max-width:860px;margin:auto}.character-loading{max-width:400px;margin:20vh auto;text-align:center;line-height:1.7}.character-loading button{padding:12px 24px;background:#b88eaa;border-radius:10px;color:#201727}
#character-selection .character-heading{position:static;display:block;pointer-events:auto;margin:0 0 24px}.character-heading>span{font-size:12px;color:#d2adbf;letter-spacing:2px}.character-heading h1{font-size:38px;line-height:1.25;letter-spacing:0;margin:14px 0}.character-heading h1 br{display:none}.character-heading p{color:#c9b9c8;line-height:1.6;font-size:14px;margin:8px 0}
.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.character-card{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid #62506b;border-radius:18px;padding:12px;background:#292131;transition:background .15s,border-color .15s;touch-action:manipulation;text-align:center}
.character-card[aria-pressed=true]{border:2px solid #e6bdab;padding:11px;background:#4a3446;box-shadow:0 0 0 2px #e6bdab22}.character-art{display:block;width:100%;height:126px;background:radial-gradient(ellipse,var(--character-color,#b5a0bf) -70%,transparent 70%);overflow:hidden}.character-art svg{height:100%;width:100%}.character-art img{width:100%;height:100%;object-fit:contain}.character-card b{font-size:16px;margin:7px 0 4px}.character-card small{font-size:12px;line-height:1.5;color:#cdbbcd}.character-check{font-size:11px;color:#cfbdcc;margin-top:10px}.character-card[aria-pressed=true] .character-check{color:#ffe2bb}.character-custom{grid-column:1/-1;flex-direction:row;gap:16px;text-align:left;min-height:76px}.character-custom .character-art{width:56px;height:58px;flex-shrink:0}.character-custom b,.character-custom small{display:block}.character-custom .character-check{margin:0 8px 0 auto;white-space:nowrap}
.character-name{margin:24px 0 0;display:grid;grid-template-columns:1fr;gap:8px}.character-name label{font-size:14px}.character-name input{font:inherit;font-size:16px;min-height:48px;padding:12px 14px;border:1px solid #71596e;border-radius:12px;background:#261e30;color:#fff0e4;width:100%;box-sizing:border-box}.character-name small{font-size:12px;color:#c9b4c7}#character-error{font-size:13px;color:#ffc4b8;line-height:1.6;margin:8px 0;min-height:0}
.character-footer{position:sticky;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;background:#211a2bf5;border:1px solid #72566b;border-radius:16px;padding:12px 16px;margin-top:20px;box-shadow:0 0 28px #17111f}.character-footer>span{font-size:13px}.character-footer b{color:#ffdab8}.character-footer small{display:block;color:#bba7bd;font-size:11px;margin-top:5px}.character-footer button{min-height:48px;padding:12px 22px;border-radius:12px;background:#e4bfa9;color:#2b1c2b;font-size:14px;font-weight:600}.character-footer button:disabled{opacity:.6}
.character-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:16px 0 0}.character-links button{min-height:44px;color:#c9b3c8;font-size:12px;text-decoration:underline;text-underline-offset:5px}
.directory-avatar{display:block;width:42px;height:54px;flex-shrink:0}.directory-avatar svg{width:100%;height:100%}#directory-results article{gap:10px}#directory-results article>div:not(.directory-actions){flex:1;min-width:0}#directory-results .directory-actions button{width:auto;padding:8px 10px;font-size:12px}#directory-results .identity-badge{color:#e9c3ac;font-size:11px}#directory-search{width:100%;box-sizing:border-box;min-height:48px;border:1px solid #7f647f;border-radius:10px;padding:12px;background:#2b2235;color:#f5e6e3;font:inherit;font-size:16px}.directory-self{font-size:12px;color:#d1baca;overflow-wrap:anywhere}
@media(max-width:600px){#character-selection{padding:calc(20px + env(safe-area-inset-top)) 16px calc(12px + env(safe-area-inset-bottom))}.character-heading h1{font-size:28px;margin:12px 0}.character-heading h1 br{display:block}.character-heading p{font-size:12px}#character-selection .character-heading{margin-bottom:18px}.character-grid{gap:8px}.character-card{border-radius:14px;padding:8px 4px}.character-card[aria-pressed=true]{padding:7px 3px}.character-art{height:92px}.character-card b{font-size:14px;margin:4px 0}.character-card small{font-size:10px}.character-check{margin-top:5px;font-size:10px}.character-custom{padding:8px 12px;min-height:66px}.character-custom[aria-pressed=true]{padding:7px 11px}.character-custom .character-art{height:48px;width:44px}.character-custom small{font-size:11px}.character-name{margin-top:18px}.character-footer{bottom:0;padding:10px 12px;gap:8px}.character-footer button{padding:12px;font-size:13px}.character-footer>span{font-size:12px}.character-links{margin-top:10px}}
@media(max-width:350px){.character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.character-heading h1{font-size:25px}.character-art{height:82px}}
@media(prefers-reduced-motion:reduce){.character-card{transition:none}}
.directory-avatar img{width:100%;height:100%;object-fit:contain;border-radius:9px}
.character-selecting.keyboard-open #character-selection{height:var(--visual-height,100dvh);bottom:auto;padding-bottom:12px}
.entry-role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.entry-role{border:1px solid #725e7d;border-radius:18px;background:#2a2234;display:flex;align-items:center;flex-direction:column;padding:16px 12px;text-align:center}.entry-role[aria-pressed=true]{border:2px solid #e8c2ab;background:#4c3549;padding:15px 11px}.entry-role>span{height:140px;width:100%}.entry-role svg{height:100%;width:100%}.entry-role b{font-size:23px;margin:8px 0}.entry-role small{font-size:12px;color:#d8c6d8;line-height:1.6}.entry-role em{font-size:12px;font-style:normal;color:#f4d2b6;margin-top:12px}.entry-role-hint{font-size:12px;color:#c8b2c9;line-height:1.6}.entry-appearance{border:1px solid #5c4a65;border-radius:12px;margin:18px 0;padding:0 12px}.entry-appearance summary{min-height:48px;line-height:48px;cursor:pointer;font-size:13px}.entry-appearance .character-grid{padding-bottom:12px}
@media(max-width:600px){.entry-role-grid{gap:8px}.entry-role{padding:12px 8px}.entry-role[aria-pressed=true]{padding:11px 7px}.entry-role>span{height:104px}.entry-role b{font-size:20px;margin:8px 0}.entry-role small{font-size:11px}.entry-role em{margin-top:8px;font-size:11px}.character-heading p{max-width:330px}}
.directory-role-tabs{display:flex;gap:8px;margin:12px 0}.directory-role-tabs button{flex:1;min-height:44px;border:1px solid #78617e;border-radius:9px;font-size:12px}.directory-role-tabs [aria-pressed=true]{background:#725363;color:#ffe1c6}
