/* Scroll reveal: visible by default, only viewport-pending sections transition. */
@media (prefers-reduced-motion: no-preference){
 .mp-reveal-pending,.mp-reveal-visible{transition:opacity .62s cubic-bezier(.22,.8,.25,1),transform .62s cubic-bezier(.22,.8,.25,1)}
 .mp-reveal-pending{opacity:0;transform:translate3d(0,23px,0);transition:opacity .62s cubic-bezier(.22,.8,.25,1),transform .62s cubic-bezier(.22,.8,.25,1)}
 .mp-reveal-visible{opacity:1;transform:none}
 .mp-reveal-now{animation:mpc-reveal-in .48s cubic-bezier(.22,.8,.25,1) both}
 @keyframes mpc-reveal-in{from{opacity:.3;transform:translate3d(0,16px,0)}to{opacity:1;transform:none}}
 #site-root .tile:nth-child(2n).mp-reveal-now,#page-content .stat:nth-child(2n).mp-reveal-now{animation-delay:.08s}
 #site-root .tile:nth-child(3n).mp-reveal-now,#page-content .stat:nth-child(3n).mp-reveal-now{animation-delay:.14s}
 .mp-photo-control{transition:transform .18s ease,box-shadow .18s ease}
 .mp-photo-control:hover{transform:translateY(-2px)}
}
@media(prefers-reduced-motion:reduce){.mp-reveal-pending{opacity:1!important;transform:none!important;transition:none!important}.mp-reveal-now{animation:none!important}}
/* Reusable photo styling, used only by authenticated member and committee screens. */
.profile-avatar img,.roster-bubble img,.mp-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}
.profile-avatar,.roster-bubble,.mp-avatar{overflow:hidden}
.mp-photo-edit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.mp-photo-edit .mp-photo-hint{font-size:11px;color:var(--muted,#8b7f86)}
.mp-avatar{overflow:hidden;flex-shrink:0}
.mp-own-photo{display:flex;align-items:center;gap:10px;margin-top:15px;flex-wrap:wrap}
.mp-own-photo button,.mp-own-photo label{cursor:pointer}
.mp-own-photo .mp-own-photo-message{font-size:12px;min-width:80px}
.mp-kiosk-photo{width:68px;height:68px;object-fit:cover;display:none;border-radius:50%;border:3px solid rgba(255,255,255,.75);box-shadow:0 6px 18px #0002;margin:10px 0}

/* v0.20.4.1 — modern, accessible portrait chooser. */
.mp-photo-dialog{display:grid;justify-items:center;gap:13px;text-align:center;padding:8px 0 4px}
.mp-photo-preview{width:132px;height:132px;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#74253d,#c17b90);border:5px solid #fff;outline:1px solid #e9d3dc;box-shadow:0 14px 30px #3f14262b;color:white;font-size:36px;font-weight:900}
.mp-photo-preview img,.mp-photo-self-avatar img{width:100%;height:100%;display:block;object-fit:cover}
.mp-photo-copy h3{margin:0 0 5px}.mp-photo-copy p{font-size:12px;line-height:1.6;max-width:390px;color:var(--muted,#756770);margin:0}
.mp-photo-drop{display:grid;gap:6px;place-items:center;border:2px dashed #b98a9a;background:linear-gradient(145deg,#fffafc,#f8ecf0);border-radius:15px;padding:23px 18px;width:100%;cursor:pointer;color:#78344b;transition:border-color .2s,background .2s}
.mp-photo-drop:hover,.mp-photo-drop.mp-drag-over{border-color:#842b47;background:#f9e3ec}
.mp-photo-drop strong{font-size:14px}.mp-photo-drop small{font-size:11px;color:#816b75}
.mp-photo-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden;clip-path:inset(50%)}
.mp-photo-input:focus-visible + .mp-photo-state{outline:2px solid #8d3754}
.mp-photo-state{font-size:11px;color:var(--muted,#80707a);margin:0;min-height:1.3em}
.mp-profile-photo-badge{font-size:11px;color:var(--muted,#80707a)}
.mp-photo-self-avatar{width:66px;height:66px;flex:0 0 66px;overflow:hidden;border-radius:50%;display:grid;place-items:center;border:3px solid #ffffffbb;background:#ae677d;color:white;font-size:20px;font-weight:900;box-shadow:0 7px 20px #0003}
.mp-photo-self-actions{display:grid;gap:5px;text-align:left;min-width:0}
.mp-photo-self-actions strong{font-size:12px;color:#fff}
.mp-photo-self-actions small{font-size:10px;color:#f5dfe8}
.mp-photo-self-buttons{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:5px}
.mp-photo-choose,.mp-photo-remove{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;padding:9px 12px;font-size:11px;font-weight:850;border:1px solid #ffffff77;background:#fff9;color:#fff;cursor:pointer}
.mp-photo-choose:hover,.mp-photo-remove:hover{background:#fff3}
.mp-photo-choose:disabled{opacity:.4;cursor:not-allowed}
.mp-own-photo-message{display:block;color:#f6dfe7;font-size:10px!important}
@media(max-width:560px){.mp-photo-dialog{gap:10px}.mp-photo-preview{width:112px;height:112px}.mp-photo-drop{padding:18px 12px}.mp-own-photo{align-items:flex-start}}
