:root{--c-bg:#232323;--c-card:#181818;--c-border:#fff;--c-muted:#a6a6a6;--c-accent:#01e65a;--c-black:#0b0b0b;--c-text:#fff;--radius:4px;--gap:24px;--pad:16px;--photo-pad:12px}.speakers{background:var(--c-bg);display:grid;gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:980px){.speakers{grid-template-columns:1fr;margin:0 auto;max-width:550px}}.speaker-card{background:var(--c-card);border:1px solid var(--c-border);color:var(--c-text);display:flex;flex-direction:column;min-height:100%}.speaker-card__media{background:var(--c-black);padding:var(--photo-pad)}.speaker-card__photo{aspect-ratio:1/1;background:#000;display:block;filter:grayscale(100%);height:auto;object-fit:cover;width:100%}.speaker-card__body{display:flex;flex-direction:column}.speaker-card__header{border-bottom:1px solid var(--c-border);border-top:1px solid var(--c-border);display:grid;gap:4px;padding:10px}.speaker-card__name{color:#fff;font-size:clamp(16px,2vw,22px);font-weight:600;line-height:1.2;margin:0;transition:color .25s ease}.speaker-card__meta{color:var(--c-muted);font-size:13px;margin:0}.speaker-card__footer{align-items:center;display:flex;gap:12px;height:55px}.speaker-card__cta{font-size:18px;padding:6px 10px;position:relative}.speaker-card__cta,.speaker-card__cta:hover{color:var(--c-text);text-decoration:none}.speaker-card__arrow{border-left:1px solid var(--c-border);border-radius:2px;color:var(--c-text);display:inline-grid;height:100%;margin-left:auto;place-items:center;text-decoration:none;transition:background-color .25s ease,border-color .25s ease,color .25s ease,transform .25s ease;width:55px}.speaker-card__icon{display:block;height:auto;width:30px}.speaker-card__icon path{fill:#fff}.speaker-card:focus-within .speaker-card__name,.speaker-card:hover .speaker-card__name{color:var(--c-accent)}.speaker-card:focus-within .speaker-card__arrow,.speaker-card:hover .speaker-card__arrow{background:var(--c-accent);border-color:var(--c-accent);color:#0b0b0b}.speaker-card:focus-within .speaker-card__arrow .speaker-card__icon,.speaker-card:hover .speaker-card__arrow .speaker-card__icon{color:#fff;transform:translate(1px,-1px)}.speaker-card:hover .speaker-card__arrow .speaker-card__icon path{fill:#000}