.speakers-hero {position:relative;isolation:isolate;overflow:hidden;padding:7rem 0 2.5rem;background:var(--navy);color:white}
.speakers-hero:before {content:"";position:absolute;z-index:-1;width:630px;height:630px;border:85px solid #18a56f18;border-radius:50%;right:-120px;top:-300px;pointer-events:none}
.speakers-hero-grid {display:grid;grid-template-columns:1.5fr .5fr;gap:2.5rem;align-items:center}
.speakers-hero .kicker {color:var(--lime);margin:0 0 1.2rem}
.speakers-hero h1 {font-size:clamp(3rem,5vw,4.5rem);line-height:.95;letter-spacing:-.055em;margin:0 0 1.2rem}
.speakers-hero h1 span {color:var(--lime)}
.speakers-hero-copy {font-size:1.04rem;color:#c7d4dc;max-width:690px;margin:0;line-height:1.65}
.speakers-hero-note {margin:1.3rem 0 0;color:#b6c9d3;font-size:.87rem}
.speakers-count {justify-self:end;text-align:center;border-left:1px solid #ffffff35;padding-left:3.4rem}
.speakers-count strong {display:block;color:var(--lime);font-size:clamp(6rem,12vw,11rem);font-weight:800;line-height:1;letter-spacing:-.08em}
.speakers-count span {font-size:.73rem;text-transform:uppercase;letter-spacing:.16em;color:#c7d4dc}
.speakers-directory {padding:2.3rem 0 5rem;scroll-margin-top:85px}
.speakers-tools {display:flex;gap:1.5rem;align-items:end;justify-content:space-between;margin-bottom:1.3rem}
.speakers-search {display:block;min-width:0;width:min(450px,100%);font-size:.82rem;font-weight:800}
.speakers-search input {display:block;width:100%;min-height:50px;padding:.75rem 1rem;border:1px solid #99a6ae;border-radius:4px;background:white;color:var(--navy);font:inherit;font-size:1rem;font-weight:400;margin-top:.4rem}
.speakers-search input:focus-visible {outline:3px solid var(--green);outline-offset:2px}
.speakers-filters {display:flex;flex-wrap:wrap;gap:.5rem}
.speakers-filters button,.speakers-clear {min-height:44px;border:1px solid #8c9b9c;border-radius:30px;padding:.6rem 1rem;color:var(--navy);background:transparent;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer}
.speakers-filters button[aria-pressed=true] {background:var(--navy);border-color:var(--navy);color:var(--lime)}
.speakers-filters button:focus-visible,.speakers-clear:focus-visible {outline:3px solid var(--green);outline-offset:3px}
.speakers-results-row {display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:48px;margin:0 0 1.1rem}
.speakers-results {font-size:.85rem;color:#52616f;margin:0}
.speakers-clear {font-size:.8rem;border:0;text-decoration:underline;text-underline-offset:4px;padding:.4rem 0;min-height:44px}
.speakers-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.speaker-card {min-width:0;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;scroll-margin-top:90px;box-shadow:0 6px 20px #081a3207;transition:border-color .2s,box-shadow .2s}
.speaker-card:hover {border-color:#18a56f80;box-shadow:0 10px 28px #081a3212}
.speaker-card:target {outline:3px solid var(--green);outline-offset:3px}
.speaker-portrait {position:relative;aspect-ratio:4/4.35;overflow:hidden;background:#dce5e4}
.speaker-portrait img {width:100%;height:100%;object-fit:cover;object-position:var(--speaker-position,50% 30%);transform:scale(var(--speaker-scale,1));transform-origin:var(--speaker-origin,50% 30%)}
.speaker-placeholder {position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;font-size:3rem;font-weight:800;color:#315e54;background:linear-gradient(145deg,#e5ede3,#c7ddcc)}
.speaker-placeholder small {font-size:.75rem;font-weight:600;color:#466256}
.speaker-card-content {padding:1.3rem 1.25rem 1.2rem;display:flex;flex-direction:column;flex:1}
.speaker-card h2 {font-size:clamp(1.2rem,1.8vw,1.55rem);line-height:1.12;letter-spacing:-.025em;margin:0 0 .7rem}
.speaker-role {font-size:.89rem;line-height:1.5;margin:0 0 .45rem;color:#3d5061}
.speaker-organisation {font-size:.78rem;line-height:1.5;font-weight:700;color:#10704f;margin:0 0 .9rem}
.speaker-session {display:block;margin-top:auto;padding-top:1.05rem;border-top:1px solid #081a321a;font-size:.73rem;line-height:1.45;text-decoration:none;color:#556a76}
.speaker-session>span {display:block;color:#0d7154;font-weight:800;margin-top:.35rem}
.speaker-session:focus-visible {outline:3px solid var(--green);outline-offset:4px}
.speaker-card[hidden],.speakers-empty[hidden],.speakers-clear[hidden] {display:none}
.speakers-empty {padding:3rem 1.5rem;border:1px solid var(--line);background:#fff;text-align:center;font-size:1.1rem}
.speakers-credits {margin-top:2.7rem;border-top:1px solid var(--line);font-size:.85rem}
.speakers-credits summary {font-size:.95rem;padding:1.2rem 0}
.speakers-credits>p {margin:0 0 1rem;font-size:.85rem}
.speakers-credits ol {margin:0;padding:0 0 1.5rem 1.25rem;columns:2;column-gap:3rem}
.speakers-credits li {break-inside:avoid;margin-bottom:.65rem;overflow-wrap:anywhere}
.speakers-credits a {text-underline-offset:3px}
.speakers-cta {background:#e9efdc;padding:4rem 0}
.speakers-cta .wrap {display:flex;align-items:center;justify-content:space-between;gap:2rem}
.speakers-cta h2 {font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.05;margin:0 0 .9rem}
.speakers-cta p {margin:0;color:#52616f}
.speakers-cta-actions {display:flex;flex-direction:column;align-items:center;gap:1rem;flex:0 0 auto}
.speakers-cta-actions a {font-size:.87rem;font-weight:700;text-underline-offset:4px}
.programme-speakers a.speaker-programme-link {color:inherit;text-decoration:none;text-underline-offset:4px}
.programme-speakers a.speaker-programme-link:hover {color:#117454;text-decoration:underline}
.programme-speakers a.speaker-programme-link:focus-visible {outline:3px solid var(--green);outline-offset:3px}
.home-program-copy .speakers-overview-link {display:block;margin-top:1rem;font-size:.9rem;color:var(--lime);font-weight:700;text-underline-offset:4px}
.programme-speakers-link {display:inline-block;margin:1rem 0 0 1rem;font-size:.95rem;font-weight:700;color:var(--lime);text-underline-offset:5px}
@media(max-width:1100px){
  .site-header {height:68px}
  .site-header nav {position:absolute;top:68px;left:0;right:0;background:var(--navy);padding:1.5rem var(--pad) 2rem;display:none;flex-direction:column;align-items:flex-start;gap:1rem;border-top:1px solid #ffffff26}
  .site-header nav.open {display:flex}
  .site-header nav a {font-size:1rem}
  .site-header .nav-participate {font-size:.95rem;min-height:48px}
  .menu-toggle {display:block}
  .speakers-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
  .speakers-tools {align-items:stretch;flex-direction:column;gap:1rem}
  .speakers-search {width:100%;max-width:560px}
}
@media(max-width:700px){
  .speakers-hero {padding:7rem 0 2.5rem}
  .speakers-hero-grid {grid-template-columns:1fr;gap:1.5rem}
  .speakers-count {display:none}
  .speakers-hero h1 {font-size:clamp(3rem,10vw,4.7rem)}
  .speakers-hero-copy {font-size:1rem}
  .speakers-filters button {padding:.55rem .7rem;font-size:.8rem}
  .speakers-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
  .speaker-card-content {padding:1rem .85rem}
  .speaker-card h2 {font-size:1.16rem}
  .speaker-role {font-size:.82rem}
  .speaker-organisation {font-size:.73rem}
  .speaker-session {font-size:.7rem}
  .speakers-credits ol {columns:1}
  .speakers-cta .wrap {flex-direction:column;align-items:flex-start}
  .speakers-cta-actions {align-items:flex-start}
  .programme-speakers-link {display:block;margin:1rem 0 0}
}
@media(max-width:370px){
  .speakers-grid {gap:.65rem}
  .speaker-card-content {padding:.85rem .7rem}
  .speaker-card h2 {font-size:1.05rem}
  .speakers-filters button {padding:.55rem .8rem;font-size:.8rem}
}

.speaker-role {overflow-wrap:anywhere}
