/* Avatar pixels are rendered once at 64 × 80 and enlarged by integer factors. */
.avatar-sprite{display:block;width:64px;height:80px;max-width:none;flex-shrink:0;object-fit:contain;image-rendering:crisp-edges;image-rendering:pixelated}
.portrait>.avatar-sprite{width:128px;height:160px}.family-avatar>.avatar-sprite,.child-target-avatar>.avatar-sprite,.avatar>.avatar-sprite{width:32px;height:40px}
.album-app .avatar-builder{display:block;margin:22px 0 26px}
.avatar-builder .avatar-stage{display:block;padding:14px 12px 16px;background:#edf0ff;border:1px solid #dce3f0;border-radius:12px}
.avatar-builder .part-selector{display:flex;justify-content:center;gap:3px;width:max-content;max-width:100%;margin:0 auto 12px;padding:4px;border:1px solid #d5dff2;border-radius:9px;background:#fff}
.avatar-builder .part-selector legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.avatar-builder .part-selector label{position:relative;display:block;margin:0;cursor:pointer;font-size:15px;font-weight:650}
.avatar-builder .part-selector input{position:absolute;opacity:0;width:1px;height:1px;min-height:0}
.avatar-builder .part-selector span{display:block;padding:10px 15px;border-radius:6px;line-height:1.2}
.avatar-builder .part-selector input:checked+span{background:#295cdd;color:#fff}.avatar-builder .part-selector input:focus-visible+span{outline:3px solid #9178bd;outline-offset:2px}
.avatar-builder .avatar-carousel{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;max-width:400px;width:100%;margin:auto}
.avatar-builder .avatar-carousel button{display:grid;place-items:center;width:44px;height:52px;padding:0;font-size:25px;border:1px solid #c4d0e8;background:#fff;border-radius:8px;box-shadow:0 3px 0 #d4ddf0}
.avatar-builder .avatar-carousel button:hover{border-color:#295cdd;color:#295cdd}.avatar-builder .avatar-carousel button:active{box-shadow:none}
.avatar-builder #avatar-live{display:grid;place-items:center;position:static;top:auto;width:auto;height:248px;border:0;outline:0;border-radius:0;background:transparent}
.avatar-builder #avatar-live>.avatar-sprite{width:192px;height:240px}
.avatar-builder .avatar-caption{text-align:center;margin-top:9px;display:flex;justify-content:center;align-items:baseline;gap:12px;min-height:24px}
.avatar-builder #avatar-choice{font-size:16px;font-weight:650}.avatar-builder #avatar-position{font-size:13px;color:#667895;font-variant-numeric:tabular-nums;white-space:nowrap}
.avatar-builder .avatar-controls{display:block;padding-top:5px}
.avatar-builder .avatar-control-group{padding:19px 0 5px;border-bottom:1px solid #dce3f0}.avatar-builder .avatar-control-group:last-child{border:0}
.avatar-builder .avatar-control-group h3{font-size:16px;margin:0 0 15px;color:#20345c}
.avatar-builder .avatar-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;align-items:start}
.avatar-builder .avatar-controls fieldset{margin:0 0 12px;padding:0;border:0;min-width:0}.avatar-builder .avatar-controls legend{font-size:14px;margin-bottom:9px;font-weight:600;color:#52698d}
.avatar-builder .avatar-controls .swatches{gap:4px}.avatar-builder .avatar-controls .swatches label{min-width:36px;min-height:36px;margin:0}.avatar-builder .swatches label span{width:26px;height:26px;box-shadow:0 0 0 1px #b9c7de}.avatar-builder .swatches input:checked+span{box-shadow:0 0 0 3px #295cdd}
.avatar-builder .glasses-choice{display:flex;flex-wrap:wrap;gap:10px}.avatar-builder .glasses-choice>label{display:flex;gap:6px;align-items:center;margin:0;font-size:14px;min-height:36px}
.avatar-builder [hidden]{display:none!important}
@media(max-width:600px){.avatar-builder .avatar-control-grid{grid-template-columns:1fr;gap:6px}.avatar-builder .avatar-control-group{padding-top:17px}.avatar-builder .part-selector span{padding:10px 12px}}
@media(max-width:420px){.avatar-builder .avatar-stage{padding:12px 8px}.avatar-builder #avatar-live{height:176px}.avatar-builder #avatar-live>.avatar-sprite{width:128px;height:160px}.avatar-builder .avatar-carousel{gap:4px;grid-template-columns:40px minmax(0,1fr) 40px}.avatar-builder .avatar-carousel button{width:40px;height:48px}.avatar-builder .part-selector span{padding:10px 9px;font-size:14px}.avatar-builder .avatar-caption{gap:8px}.avatar-builder #avatar-choice{font-size:14px}}
