/* Speaker profiles: Lucide plus/x, one native dialog and a restrained blurred backdrop. */
.speaker-photo[data-speaker-detail]{position:relative;display:block;width:100%;padding:0;border:0;background:#000;color:#fff;text-align:left;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent}
.speaker-photo[data-speaker-detail]:focus-visible{outline:2px solid #fff;outline-offset:7px}
.speaker-open-hint{position:absolute;z-index:3;right:16px;bottom:16px;width:118px;height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 17px;border-radius:999px;background:#fff;color:#000;clip-path:inset(0 0 0 74px round 999px);transition:clip-path .28s cubic-bezier(.2,.7,.2,1);pointer-events:none;box-shadow:0 4px 18px #0003}
.speaker-open-hint>span{font-size:12px;line-height:1;font-weight:500;opacity:0;transform:translateX(6px);transition:opacity .18s ease,transform .28s cubic-bezier(.2,.7,.2,1)}
.speaker-open-hint svg{width:20px;height:20px;flex:0 0 20px}
.speaker-photo:hover .speaker-open-hint,.speaker-photo:focus-visible .speaker-open-hint{clip-path:inset(0 round 999px)}
.speaker-photo:hover .speaker-open-hint>span,.speaker-photo:focus-visible .speaker-open-hint>span{opacity:1;transform:none}
.speaker-modal{position:fixed;inset:0;margin:auto;padding:0;border:0;background:transparent;color:#fff;width:min(960px,calc(100% - 64px));max-width:none;height:fit-content;max-height:calc(100dvh - 64px);overflow:visible;font:inherit}
.speaker-modal::backdrop{background:rgb(0 0 0 / .60);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:profile-backdrop-in .28s ease both}
.speaker-modal-shell{position:relative;border:1px solid #ffffff40;border-radius:24px;background:#000;overflow:hidden;box-shadow:0 32px 100px #0009;animation:profile-enter .32s cubic-bezier(.2,.7,.2,1) both}
.speaker-modal-scroll{max-height:calc(100dvh - 66px);overflow-y:auto;overscroll-behavior:contain;padding:34px 40px 30px;scrollbar-width:thin;scrollbar-color:#fff #000}
.profile-close{position:absolute;z-index:3;right:18px;top:17px;width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid #ffffff60;border-radius:50%;background:#000;color:#fff;transition:background .18s,color .18s}
.profile-close:hover{background:#fff;color:#000}.profile-close svg{width:20px;height:20px}.profile-close:focus-visible{outline:2px solid #fff;outline-offset:4px}
.profile-eyebrow{font-size:10px;font-weight:500;letter-spacing:.13em;margin:1px 60px 30px 0;line-height:1.4}
.profile-intro{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:42px;align-items:center}
.profile-portrait{border-radius:15px;overflow:hidden;aspect-ratio:.92;background:#000}
.profile-portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 18%}
.profile-dimension{font-size:11px;font-weight:600;letter-spacing:.09em;color:#eb0028;margin-bottom:14px}
.profile-identity h2{font-size:clamp(40px,5vw,62px);font-weight:500;line-height:1.04;letter-spacing:-.045em;overflow-wrap:break-word;outline:none}
.profile-role{font-size:17px;margin-top:16px;line-height:1.4}
.profile-question{margin-top:34px;padding-top:24px;border-top:1px solid #ffffff50}
.profile-label{font-size:9px;letter-spacing:.1em;font-weight:500;margin-bottom:10px}
#profile-question{font-size:21px;line-height:1.35;letter-spacing:-.015em;max-width:370px}
.profile-details{margin-top:36px;padding-top:28px;border-top:1px solid #ffffff50;display:grid;grid-template-columns:1fr 1fr;gap:42px}
.profile-details h3{font-size:25px;letter-spacing:-.025em;font-weight:500;margin-bottom:12px}
.profile-details p{font-size:15px;line-height:1.6;white-space:pre-line}
.profile-footer{display:flex;justify-content:space-between;gap:18px;border-top:1px solid #ffffff50;margin-top:30px;padding-top:17px;font-size:10px;letter-spacing:.035em}
.speaker-modal.is-closing .speaker-modal-shell{animation:profile-leave .2s ease both}
.speaker-modal.is-closing::backdrop{animation:profile-backdrop-out .2s ease both}
@keyframes profile-enter{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:none}}
@keyframes profile-leave{from{opacity:1;transform:none}to{opacity:0;transform:translateY(10px) scale(.99)}}
@keyframes profile-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes profile-backdrop-out{from{opacity:1}to{opacity:0}}
@media(hover:none){.speaker-open-hint{clip-path:inset(0 round 999px)}.speaker-open-hint>span{opacity:1;transform:none}}
@media(max-width:760px){.speaker-open-hint{right:10px;bottom:10px;width:104px;height:36px;padding:0 9px 0 13px;clip-path:inset(0 round 999px)}.speaker-open-hint svg{width:18px;height:18px;flex-basis:18px}.speaker-open-hint>span{font-size:11px;opacity:1;transform:none}.speaker-modal{width:calc(100% - 24px);max-height:calc(100dvh - 32px)}.speaker-modal-shell{border-radius:20px}.speaker-modal-scroll{max-height:calc(100dvh - 34px);padding:26px 22px 24px}.profile-close{top:12px;right:12px}.profile-eyebrow{font-size:9px;margin:2px 48px 29px 0}.profile-intro{grid-template-columns:1fr;gap:24px}.profile-portrait{aspect-ratio:1.3;max-height:280px;border-radius:12px}.profile-portrait img{object-position:center 12%}.profile-dimension{font-size:10px;margin-bottom:11px}.profile-identity h2{font-size:44px}.profile-role{font-size:15px;margin-top:11px}.profile-question{margin-top:24px;padding-top:20px}.profile-label{font-size:8px}#profile-question{font-size:19px}.profile-details{margin-top:28px;padding-top:25px;grid-template-columns:1fr;gap:26px}.profile-details h3{font-size:25px;margin-bottom:9px}.profile-details p{font-size:14px}.profile-footer{font-size:9px;gap:10px;margin-top:28px}}
@media(max-width:359px){.speaker-open-hint{width:98px;right:7px;bottom:8px}.speaker-modal-scroll{padding-inline:18px}.profile-identity h2{font-size:38px}.profile-portrait{aspect-ratio:1.15}}
@media(prefers-reduced-motion:reduce){.speaker-open-hint,.speaker-open-hint>span,.profile-close{transition:none}.speaker-modal-shell,.speaker-modal::backdrop,.speaker-modal.is-closing .speaker-modal-shell,.speaker-modal.is-closing::backdrop{animation:none!important}}

/* Studio 15 — one painted pass across the viewport before the profile emerges. */
.speaker-modal.is-brush-opening .speaker-modal-shell{animation:none;opacity:0;transform:translateY(12px) scale(.99);pointer-events:none}
.speaker-modal:focus{outline:none}
.profile-brush{position:fixed;inset:0;z-index:10;overflow:hidden;pointer-events:none;contain:strict}
.profile-brush[hidden]{display:none}
.profile-brush svg{display:block;width:100%;height:100%;overflow:visible}
@media(prefers-reduced-motion:reduce){.profile-brush{display:none!important}}
