/* Layered characters: body art, equipment, weapon and mount remain separate. */
.role-avatar{--actor-size:130px;display:inline-block;position:relative;width:var(--actor-size);height:var(--actor-size);vertical-align:bottom;pointer-events:none;isolation:isolate;flex-shrink:0;filter:drop-shadow(0 3px 2px #15312740)}.rider-layer{position:absolute;inset:0;width:100%;height:100%;z-index:2}.role-body{position:absolute;inset:0;display:block;background-size:300% 200%;background-repeat:no-repeat}.held-weapon{position:absolute;left:61%;top:27%;height:85%;width:38%;z-index:4;transform-origin:25% 30%;filter:drop-shadow(1px 1px 1px #1d3a4070)}.weapon-art{display:block;width:100%;height:100%;overflow:visible}.held-weapon.luminous{filter:drop-shadow(0 0 3px #a9eaff)}.armor-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.helmet-layer{position:absolute;left:43%;top:5%;font-size:24px;color:#ddd4a8;text-shadow:1px 1px #536e6f;z-index:3;scale:1.3 .65}.mount-figure{position:absolute;inset:0;display:block;background-image:url('./assets/mounts-v3.png');background-size:300% 200%;background-position:var(--tile-x) var(--tile-y);background-repeat:no-repeat}.role-avatar.riding{--actor-size:164px}.role-avatar.riding .rider-layer{inset:auto;width:70%;height:70%;left:15%;bottom:33%;clip-path:inset(0 -25% 28% -25%);z-index:2}.role-avatar.riding .held-weapon{display:none}.role-avatar.riding .mount-figure{z-index:1}.role-face{display:block;position:relative;width:var(--face);height:var(--face);flex-shrink:0;background-image:url('./assets/roles-v3.png');background-repeat:no-repeat;background-size:600% 400%;background-position:var(--face-x) var(--face-y);background-color:#647a8d;overflow:hidden}.pc-head.hero-head .role-face{position:absolute;top:0;left:-2px}.role-face:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 6px #b3d5c633;pointer-events:none}.player .role-avatar{--actor-size:117px}.player .role-avatar.riding{--actor-size:162px}.player.walking .role-avatar:not(.riding) .rider-layer{animation:role-stride .23s ease-in-out infinite alternate}.player.walking .role-avatar.riding{animation:mount-stride .32s ease-in-out infinite alternate}.pc-client .battle-unit .role-avatar,.effects-stage .battle-unit .role-avatar{--actor-size:112px}.pc-client .battle-unit .role-avatar .held-weapon,.effects-stage .battle-unit .role-avatar .held-weapon{z-index:6}.pc-client .battle-unit:not(.enemy) .role-avatar{transform:scaleX(-1)}.pc-client .battle-unit.active-turn .role-avatar .held-weapon{animation:weapon-follow .35s ease-out}.pc-client .battle-unit .unit-art:has(.role-avatar):before{bottom:2px}.pc-ride-toggle{position:absolute;left:8px;top:128px;z-index:17;display:flex;align-items:center;gap:4px;color:#fff1b5;border:1px solid #c4b27e;box-shadow:inset 0 0 0 1px #1e3855;background:linear-gradient(#7990a2,#34516d 30%,#213d57 85%,#6a8392);padding:4px 8px;font-size:11px;border-radius:3px}.pc-ride-toggle svg.icon{width:13px;height:13px}
.pc-client.compact .pc-tools{gap:3px}.pc-client.compact .pc-tool{width:31px}.pc-tool.tool-star svg{color:#e6bcdb}.pc-tool.tool-run svg{color:#a5d5d4}
/* Equipment paper doll has six named, interactive slots. */
.equipment-paper{position:relative;width:100%;height:310px;border:2px solid #a9b5a5;background:radial-gradient(ellipse at 50% 48%,#8eb9b4aa,#476c8344 57%,#203e6c88),repeating-linear-gradient(45deg,#e9deb811 0 1px,transparent 1px 5px),#3f597f;box-shadow:inset 0 0 0 1px #e6d8a899,inset 0 0 35px #102e4f55;overflow:hidden;border-radius:3px}.paper-top{position:absolute;left:0;right:0;top:0;padding:8px 4px;text-align:center;color:#fff0b7;font-size:12px;border-bottom:1px solid #b2c7b344;background:linear-gradient(#6e8399,#263f69);letter-spacing:2px;z-index:3}.paper-avatar{position:absolute;left:50%;top:50%;translate:-50% -44%;pointer-events:none}.paper-avatar .role-avatar{--actor-size:207px}.paper-slot{position:absolute;width:43px;height:46px;z-index:5;padding:2px;background:linear-gradient(135deg,#a6b9b3,#456a79 27%,#203e65 78%,#748e94);border:1px solid #ddcf95;border-radius:2px;box-shadow:inset 0 0 0 1px #182e54,0 1px 3px #182d4966;color:#e6edcf}.paper-slot>span{display:block;height:31px;width:100%}.paper-slot svg.icon{width:28px;height:28px;margin:auto;display:block}.paper-slot .weapon-art{height:42px;max-width:25px;margin:-5px auto 0}.paper-slot small{position:absolute;bottom:0;left:0;right:0;font-size:9px;line-height:12px;background:#213556c9;color:#f3e2b0;text-shadow:1px 1px #152c43}.paper-slot b{position:absolute;top:1px;right:2px;font:9px Arial;color:#ffe99e}.paper-slot-0{left:7px;top:104px}.paper-slot-1{left:7px;top:45px}.paper-slot-2{right:7px;top:45px}.paper-slot-3{right:7px;top:104px}.paper-slot-4{left:7px;top:163px}.paper-slot-5{right:7px;top:163px}.paper-slot:hover{filter:brightness(1.2);box-shadow:inset 0 0 0 1px #fff0a4,0 0 7px #f4dfa766}.paper-caption{position:absolute;bottom:15px;left:0;right:0;color:#dce9d2;text-align:center;font-size:11px;letter-spacing:1px}.compact-paper{height:255px}.compact-paper .paper-top{font-size:10px;padding:7px 2px;letter-spacing:0}.compact-paper .paper-avatar .role-avatar{--actor-size:154px}.compact-paper .paper-avatar{top:49%}.compact-paper .paper-slot{width:29px;height:35px}.compact-paper .paper-slot>span{height:24px}.compact-paper .paper-slot svg.icon{width:21px;height:21px}.compact-paper .paper-slot .weapon-art{height:34px;max-width:19px}.compact-paper .paper-slot small{font-size:8px;line-height:10px}.compact-paper .paper-slot-0,.compact-paper .paper-slot-3{top:104px}.compact-paper .paper-slot-1,.compact-paper .paper-slot-2{top:57px}.compact-paper .paper-slot-4,.compact-paper .paper-slot-5{top:151px}.compact-paper .paper-slot-0,.compact-paper .paper-slot-1,.compact-paper .paper-slot-4{left:3px}.compact-paper .paper-slot-2,.compact-paper .paper-slot-3,.compact-paper .paper-slot-5{right:3px}.compact-paper .paper-caption{bottom:15px;font-size:10px}.character-v3{display:grid;grid-template-columns:270px 1fr;gap:21px}.character-window{width:740px}.character-appearance-links{display:flex;gap:5px;justify-content:center;margin-top:9px}.character-appearance-links .btn{padding:5px 8px;font-size:11px}.character-nameplate{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid #aebba3;margin-bottom:10px}.character-nameplate>.role-face{border:2px solid #d1bd88;box-shadow:0 0 0 1px #647c7a;border-radius:3px}.character-nameplate b{display:block;font:bold 19px 'KaiTi','SimSun',serif;color:#405b4e}.character-nameplate small{display:block;margin-top:5px;font-size:11px;color:#677d67}.character-vitals .stats{gap:3px 15px}.character-vitals .stat strong{font-weight:400;color:#31565c}.character-vitals>.btn.full{margin-top:10px}.pc-item-slot .weapon-art{width:24px;height:36px;margin-top:-3px}.pc-item-detail em{font-style:normal;color:#9b5e43;font-size:11px}.inventory-pager{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:10px}.inventory-pager .text-btn{font-size:10px;padding:2px 3px}
/* Wardrobe, role selection, mount stable and equipment preview share a stage. */
.modal.appearance-window{width:840px;max-width:calc(100vw - 24px)}.appearance-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px}.appearance-stage{position:relative;min-height:350px;border:2px solid #9aafa1;border-radius:3px;box-shadow:inset 0 0 0 1px #d2d6b6,inset 0 0 35px #203d5e55;background:radial-gradient(ellipse at 50% 65%,#aacbba88,transparent 65%),linear-gradient(145deg,#587d91,#30506f 58%,#20375f);overflow:hidden}.appearance-stage:before{content:'';position:absolute;bottom:45px;width:190px;height:45px;left:50%;translate:-50% 0;border-radius:50%;border:1px solid #e2d7a666;box-shadow:0 0 0 8px #d6dcb111,0 0 0 9px #d6dcb144,inset 0 0 20px #bbd7c344;background:#668e9177}.stage-heading{position:absolute;top:18px;left:6px;right:6px;z-index:4;color:#fff0b5;font:24px/1.3 'KaiTi','SimSun',serif;letter-spacing:2px;text-align:center;text-shadow:1px 2px #25435e}.stage-heading small{display:block;font:11px/1.6 var(--pc-font);letter-spacing:1px;color:#c6ddcc;margin-top:5px}.appearance-model{position:absolute;left:50%;bottom:41px;translate:-50% 0;pointer-events:none}.appearance-model .role-avatar{--actor-size:266px}.mount-stage .appearance-model .role-avatar{--actor-size:286px}.mount-stage .appearance-model{bottom:33px}.stage-plaque{position:absolute;bottom:12px;left:7px;right:7px;z-index:4;font:11px/1.6 var(--pc-font);text-align:center;color:#e6e7ba;text-shadow:1px 1px #2d4b63}.appearance-options{min-width:0}.appearance-tabs{display:flex;gap:3px;align-items:center;margin-bottom:11px}.appearance-tabs .tab{font-size:12px;padding:5px 12px;min-height:28px}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.role-option{display:grid;justify-items:center;padding:7px 3px 8px;gap:5px;background:linear-gradient(#eae2be,#bfcdb2);border:1px solid #98ab93;border-radius:3px;color:#426051;min-height:113px}.role-option>.role-face{border:2px solid #a7ac89;box-shadow:inset 0 0 0 1px #f1e3b8;border-radius:3px}.role-option b{font:15px 'KaiTi','SimSun',serif;color:#455b43}.role-option small{font-size:10px;color:#728268}.role-option.selected{border:1px solid #d0b16a;box-shadow:inset 0 0 0 1px #f8e6a2;background:linear-gradient(#fff2bf,#cbd0a9)}.role-option.selected .role-face{border-color:#e8d07e}.appearance-explanation{font-size:11px;line-height:1.8;color:#6e806b;border-top:1px solid #a8b79866;margin:12px 0;padding-top:9px}.appearance-options>.btn.full{margin-top:8px;min-height:31px}.selected-description{margin-top:12px;background:#f0e9c8;border:1px solid #a2b193;border-radius:3px;padding:10px 12px;font-size:12px;color:#6a7d66;line-height:1.7}.selected-description>b{display:block;color:#425f4b;font-size:15px}.selected-description p{margin:4px 0}.selected-description small{font-size:11px;color:#85754e}.outfit-list{display:grid;gap:8px}.outfit-option{position:relative;display:flex;align-items:center;gap:10px;padding:5px 11px 5px 5px;text-align:left;background:linear-gradient(135deg,#e8e1bd,#c7d0b3);border:1px solid #a3b197;border-radius:3px;min-height:80px;color:#4a6353}.outfit-thumbnail{position:relative;display:block;width:69px;height:73px;flex-shrink:0;background:radial-gradient(ellipse,#759997,#45697e);border:1px solid #aab998;border-radius:2px;overflow:hidden}.outfit-thumbnail .role-avatar{position:absolute;bottom:0;left:50%;translate:-50% 0;--actor-size:74px}.outfit-option b{display:block;font:17px 'KaiTi','SimSun',serif;letter-spacing:1px}.outfit-option small{display:block;margin-top:6px;font-size:11px;color:#7e866c}.try-label{margin-left:auto;color:#6f8e82;font-size:11px}.outfit-option.selected{border-color:#c6a768;box-shadow:inset 0 0 0 1px #fff0bb;background:linear-gradient(135deg,#fff1be,#c8d0af)}.dye-swatches{position:absolute;bottom:43px;left:50%;translate:-50% 0;display:flex;gap:8px;z-index:6;padding:4px 6px;background:#2d526581;border:1px solid #c5d4b366;border-radius:3px}.dye-swatches button{width:17px;height:17px;border:1px solid #e5d7a6;border-radius:2px;box-shadow:inset 0 0 0 1px #283e58}.dye-natural{background:#72a9c6}.dye-moon{background:#eff2de}.dye-violet{background:#9d84bf}.dye-rose{background:#cf7c8c}.dye-swatches button.selected{outline:1px solid #fff3b8;outline-offset:2px}.wardrobe-stage .appearance-model{bottom:52px}.mount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mount-option{display:grid;justify-items:center;gap:3px;position:relative;min-height:119px;padding:3px 3px 7px;background:linear-gradient(#d9dfc0,#bdccb3);border:1px solid #a3b296;border-radius:3px;color:#47644e}.mount-thumbnail{display:block;position:relative;width:100%;height:69px;background:radial-gradient(ellipse,#b1c8b9,transparent 70%);overflow:hidden}.mount-thumbnail .mount-figure{width:85px;height:85px;inset:auto;bottom:0;left:50%;translate:-50% 0}.mount-option b{font-size:12px;font-weight:400}.mount-option small{font-size:9px;color:#74856c}.mount-option em{font-size:9px;color:#8b7b48;font-style:normal}.mount-option.selected{box-shadow:inset 0 0 0 1px #ffefac;border-color:#c9a867;background:linear-gradient(#f2e6b3,#c4d0ac)}.mount-grid+.selected-description{margin-top:10px;padding:8px 10px}.mounts-layout .appearance-stage{min-height:385px}.gear-browser{display:grid;grid-template-columns:285px 1fr;gap:18px}.gear-stage{min-height:370px}.gear-stage .appearance-model{bottom:46px}.gear-stage .stage-heading{font-size:22px}.gear-level-filter{display:flex;gap:10px;align-items:center;font-size:12px;color:#566c59;margin-bottom:10px}.gear-level-filter select.input{flex:1;max-width:200px;padding:5px 8px}.gear-catalog{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.gear-tile{position:relative;min-height:84px;padding:6px 2px;display:grid;justify-items:center;gap:4px;background:linear-gradient(135deg,#e9e2be,#becdb1);border:1px solid #a3b497;border-radius:3px}.gear-tile>span{display:grid;place-items:center;width:36px;height:37px;overflow:visible;color:#71815d}.gear-tile .weapon-art{height:43px;width:28px;margin-top:-4px}.gear-tile svg.icon{width:29px;height:29px}.gear-tile b{font-size:11px;line-height:1.3;font-weight:400;color:#4b6450}.gear-tile small{font-size:9px;color:#7c856b}.gear-tile.selected{border-color:#c4a66b;box-shadow:inset 0 0 0 1px #ffefb9;background:linear-gradient(135deg,#fff2c5,#d0d3ad)}.gear-browser>.appearance-stage:before{bottom:45px}.new-gear-icon .weapon-art{height:40px;width:25px}.create-role-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:10px 0 15px}.create-role{display:grid;justify-items:center;gap:4px;font-size:10px;padding:5px 2px;border:1px solid #a9b799;background:#c5d0b2;border-radius:3px}.create-role.active{border-color:#ad9256;background:#f4e5b3}.create-role .role-face{border:1px solid #acb48f}.welcome-art{height:85px!important}
@keyframes role-stride{from{translate:0 0;rotate:-1.5deg}to{translate:0 -5px;rotate:1.5deg}}@keyframes mount-stride{from{translate:0 1px;rotate:-.7deg}to{translate:0 -4px;rotate:.7deg}}@keyframes weapon-follow{30%{rotate:-25deg}70%{rotate:13deg}}
@media(max-width:700px){.character-v3{grid-template-columns:190px minmax(0,1fr);gap:12px}.character-v3 .equipment-paper{height:290px}.character-v3 .paper-avatar .role-avatar{--actor-size:182px}.character-appearance-links{flex-wrap:wrap}.character-nameplate{gap:7px}.character-nameplate b{font-size:16px}.character-nameplate small{font-size:10px}.character-vitals .stats{grid-template-columns:1fr}.character-vitals .stat{font-size:11px;padding:4px 0}.appearance-layout,.gear-browser{grid-template-columns:170px minmax(0,1fr);gap:11px}.appearance-stage{min-height:320px}.appearance-model .role-avatar{--actor-size:188px}.mount-stage .appearance-model .role-avatar{--actor-size:200px}.stage-heading{font-size:20px}.stage-heading small{font-size:10px}.role-grid{gap:5px}.role-option{min-height:102px}.role-option>.role-face{transform:scale(.8);margin:-6px}.role-option small{font-size:9px}.role-option b{font-size:13px}.mount-grid{grid-template-columns:repeat(2,1fr)}.mount-option{min-height:100px}.mount-thumbnail{height:55px}.mount-thumbnail .mount-figure{width:72px;height:72px}.outfit-option{gap:6px;padding:4px 6px;min-height:70px}.outfit-thumbnail{width:55px;height:62px}.outfit-thumbnail .role-avatar{--actor-size:64px}.outfit-option b{font-size:15px}.outfit-option small{font-size:10px}.try-label{font-size:10px}.appearance-tabs .tab{padding:4px 8px;font-size:11px}.selected-description{padding:8px;font-size:11px}.selected-description>b{font-size:14px}.appearance-explanation{font-size:10px}.gear-stage .stage-heading{font-size:18px}.gear-stage .stage-heading small{letter-spacing:0}.gear-tile b{font-size:10px}.gear-tile small{font-size:8px}.gear-catalog{gap:4px}.gear-tile{min-height:75px}.stage-plaque{font-size:10px}}
@media(max-width:520px){.appearance-window .modal-body{padding:10px}.appearance-layout,.gear-browser{grid-template-columns:136px minmax(0,1fr);gap:9px}.appearance-model .role-avatar{--actor-size:158px}.mount-stage .appearance-model .role-avatar{--actor-size:170px}.role-grid{grid-template-columns:repeat(2,1fr)}.role-option{min-height:88px;gap:3px;padding:5px 2px}.role-option>.role-face{transform:scale(.7);margin:-9px}.role-option b{font-size:12px}.role-option small{font-size:8px}.stage-heading{font-size:18px;letter-spacing:1px;top:15px}.stage-heading small{font-size:9px;letter-spacing:0}.appearance-stage{min-height:320px}.stage-plaque{left:4px;right:4px;font-size:9px;letter-spacing:0}.appearance-stage:before{width:110px;height:29px}.mounts-layout .appearance-stage{min-height:390px}.mount-grid{gap:4px}.mount-option b{font-size:11px}.mount-option small{font-size:8px}.mount-option em{font-size:9px}.outfit-option{gap:5px}.outfit-thumbnail{width:44px;height:56px}.outfit-thumbnail .role-avatar{--actor-size:57px}.try-label{display:none}.outfit-option b{font-size:13px}.outfit-option small{font-size:9px}.appearance-options>.btn.full{font-size:11px;padding:6px}.gear-level-filter{font-size:10px;gap:5px}.gear-level-filter select.input{max-width:130px;font-size:11px}.gear-catalog{grid-template-columns:repeat(2,1fr)}.gear-stage{min-height:440px}.gear-stage .stage-heading{font-size:16px}.character-v3{grid-template-columns:148px minmax(0,1fr);gap:9px}.character-window .modal-body{padding:10px}.character-v3 .paper-slot{width:29px;height:35px}.character-v3 .paper-slot svg.icon{width:23px;height:23px}.character-v3 .paper-slot>span{height:24px}.character-v3 .paper-slot small{font-size:8px}.character-v3 .paper-avatar .role-avatar{--actor-size:153px}.character-v3 .paper-slot-0,.character-v3 .paper-slot-1,.character-v3 .paper-slot-4{left:2px}.character-v3 .paper-slot-2,.character-v3 .paper-slot-3,.character-v3 .paper-slot-5{right:2px}.character-appearance-links .btn{font-size:10px;padding:4px 6px}.character-nameplate .role-face{display:none}.character-vitals .appearance-explanation{font-size:9px}.character-vitals>.btn.full{font-size:10px;padding:5px}.create-role-grid{grid-template-columns:repeat(3,1fr)}}
@media(prefers-reduced-motion:reduce){.role-avatar,.rider-layer,.held-weapon{animation:none!important}}

.helmet-layer{top:14%;width:36%;height:18%;font-size:initial;scale:none;z-index:3}.helmet-layer svg{display:block;width:100%;height:100%;overflow:visible}.armor-layer{opacity:.82}

.modal.character-window{width:740px;max-width:calc(100vw - 24px)}

.modal-backdrop{grid-template-columns:minmax(0,1fr);justify-items:center}@media(max-width:600px){.modal-backdrop{padding:12px}}
