.speaker-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;grid-auto-rows:auto;align-items:stretch}
.speaker-card{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:#fff;border:1px solid #e3dfe8;border-radius:14px}
.speaker-portrait{position:relative;display:block;flex:none;width:100%;aspect-ratio:1/1;padding:0;overflow:hidden;background:#e7e7ef;border-radius:0}
.speaker-portrait>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;aspect-ratio:auto;border-radius:0}
.speaker-flyer-window{position:absolute;display:block;top:0;left:50%;height:100%;width:auto;max-height:none;transform:translateX(-50%);overflow:hidden}
.speaker-flyer-window>img{position:absolute;display:block;width:var(--flyer-width);height:var(--flyer-height);left:var(--flyer-left);top:var(--flyer-top);max-width:none;max-height:none;object-fit:fill;object-position:initial;aspect-ratio:auto;border-radius:0}
.speaker-source-flyer{top:10px;height:calc(100% - 10px);border-radius:30% 30% 0 0}
.speaker-card-copy{display:flex;flex:1;flex-direction:column;padding:20px;text-align:left}
.speaker-event-role{display:block;min-height:21px;margin:0 0 9px;color:#542582;font-size:13px;font-weight:800;line-height:1.6;letter-spacing:.04em;text-transform:uppercase}
.speaker-card h3{min-height:0;margin:0 0 9px;color:#30223e;font-size:18px;line-height:1.35;overflow-wrap:anywhere}
.speaker-card p{margin:0 0 16px;color:#655c70;font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.speaker-pending{display:block;margin:0 0 16px;padding-top:0;color:#73697b;font-size:13px;line-height:1.5}
.speaker-profile-open{display:flex;align-items:center;justify-content:center;align-self:stretch;min-height:46px;margin:auto 0 0;padding:12px 16px;border:1px solid #512784;border-radius:8px;background:#512784;color:#fff;font:inherit;font-size:14px;font-weight:800;line-height:1.4;text-align:center;white-space:normal;cursor:pointer}
.speaker-pending+.speaker-profile-open{margin-top:auto}
.speaker-profile-open:hover{background:#3e1b68;border-color:#3e1b68;text-decoration:none}
.speaker-profile-open:focus-visible,[data-speaker-close]:focus-visible{outline:3px solid #66ad37;outline-offset:4px}
.speaker-dialog-photo{width:180px;max-width:65%;margin-bottom:18px}
.speaker-rich,.speaker-bio{line-height:1.7}.speaker-rich p,.speaker-bio p{margin:0 0 16px}
.speaker-profile-dialog [data-speaker-close],#speaker-dialog [data-speaker-close]{min-width:46px;min-height:46px}
@media(max-width:1000px){.speaker-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}}
@media(max-width:540px){.speaker-card-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:24px}.speaker-card h3{min-height:0;font-size:21px}.speaker-card-copy{padding:20px}.speaker-card p{font-size:16px}.speaker-pending{margin-top:0}.speaker-dialog-photo{width:160px}}

/* Balanced speaker cards and readable profiles, 21 October 2026. */
.speaker-card-copy{gap:0}.speaker-card h3{margin-bottom:10px}.speaker-card p{margin-bottom:18px}.speaker-pending{font-style:italic}.speaker-profile-dialog{box-sizing:border-box;width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:32px}.speaker-profile-dialog h2{font-size:clamp(26px,4vw,38px);line-height:1.2;margin:0 0 12px;overflow-wrap:anywhere}.speaker-profile-dialog>b{display:block;line-height:1.6;margin-bottom:20px}.speaker-rich{overflow-wrap:anywhere}.speaker-profile-dialog .dialog-close{top:12px;right:12px}.speaker-dialog-photo{max-width:55%;width:150px}.speaker-card *{box-sizing:border-box}
@media(max-width:540px){.speaker-profile-dialog{padding:24px}.speaker-card-copy{padding:20px}.speaker-card-grid{gap:20px}.speaker-profile-dialog h2{font-size:28px}.speaker-card .speaker-profile-open{font-size:16px}}
