/* Single-theme homepage. One image/control tree serves every viewport. */
.ref-hero { color:var(--b27-ref-ink); background:var(--b27-ref-bg); }
.ref-hero__intro { padding-block:32px 24px; }
.ref-hero__meta { margin:0 0 16px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--b27-ref-muted); }
.ref-hero__intro h1 { max-width:1000px; margin:0; font-size:64px; line-height:1.06; letter-spacing:-.035em; text-transform:none; }
.ref-hero__intro h1 span { display:block; color:var(--b27-ref-ink); }
.ref-hero__intro h1 span:last-child { color:var(--b27-ref-gold); }
.ref-hero__support { max-width:880px; margin:16px 0 0; font-size:16px; line-height:1.55; color:var(--b27-ref-ink); }
.ref-hero__instruction { margin:8px 0 0; font-size:16px; line-height:1.55; color:var(--b27-ref-muted); }
.ref-curtains { display:flex; position:relative; height:400px; padding:0; margin:0; border:0; background:var(--b27-ref-bg); }
.ref-curtain { position:relative; flex:0 0 72px; min-width:0; min-height:44px; padding:16px; border:0; border-inline-start:1px solid var(--b27-ref-line); border-radius:0; overflow:hidden; color:var(--b27-ref-ink); background:var(--b27-ref-bg); cursor:pointer; font:inherit; transition:flex-basis 320ms ease-out,flex-grow 320ms ease-out; }
.ref-curtain:first-child { border-inline-start:0; }
.ref-curtain[aria-selected="true"] { flex:1 1 0; }
.ref-curtain__image { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; opacity:0; transition:opacity 170ms ease-out; pointer-events:none; }
.ref-curtain[aria-selected="true"] .ref-curtain__image { opacity:1; }
.ref-curtain[aria-selected] .ref-curtain__image[hidden] { display:none; }
.ref-curtain[data-theme="bronchoscopy"] .ref-curtain__image { object-position:60% center; }
.ref-curtain::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(4,9,16,.9),transparent 65%); pointer-events:none; }
.ref-curtain__name { position:relative; z-index:1; display:inline-block; writing-mode:vertical-rl; transform:rotate(180deg); font-size:14px; font-weight:600; letter-spacing:.06em; }
.ref-curtain[aria-selected="true"] .ref-curtain__name { position:absolute; bottom:20px; left:24px; right:24px; writing-mode:horizontal-tb; transform:none; font-family:var(--b27-font-display); font-size:32px; line-height:1.15; letter-spacing:0; text-align:left; }
.ref-curtain__mobile-label { display:none; }
.ref-curtain:focus-visible { outline:3px solid var(--b27-ref-gold); outline-offset:-5px; }
.ref-hero__summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; padding-block:16px; }
.ref-hero__summary p { margin:0; font-size:14px; color:var(--b27-ref-muted); }
.ref-link { display:inline-flex; align-items:center; min-height:44px; color:var(--b27-ref-gold); font-weight:600; }
.ref-hero__primary { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 20px; font-weight:600; border-radius:var(--b27-radius); background:var(--b27-ref-gold); color:var(--b27-ref-bg); }
.ref-hero__primary:focus-visible,.ref-link:focus-visible { outline:2px solid var(--b27-ref-gold); outline-offset:4px; }
.ref-theme-feature { padding-block:32px 64px; scroll-margin-top:calc(var(--b27-header-height) + 24px); }
.ref-theme-feature [hidden] { display:none; }
.ref-theme-feature h2 { margin:8px 0 16px; font-size:36px; line-height:1.15; }
.ref-theme-feature__intro { max-width:65ch; }
.ref-theme-people { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:24px 0; }
.ref-theme-people[data-speaker-count="1"] { grid-template-columns:minmax(0,1fr); }
.ref-theme-people[data-speaker-count="2"] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.ref-theme-people[data-speaker-count="2"] .ref-theme-person { --portrait-width:112px; }
.ref-theme-person { min-width:0; border-top:1px solid var(--b27-ref-line); padding-top:24px; }
.ref-theme-person__identity { display:grid; grid-template-columns:var(--portrait-width,104px) minmax(0,1fr); align-items:start; gap:16px; }
.ref-theme-person__identity--text { grid-template-columns:minmax(0,1fr); }
.ref-theme-person__identity img { width:var(--portrait-width,104px); height:auto; object-fit:cover; aspect-ratio:4 / 5; }
.ref-theme-person h3 { margin:0 0 8px; font-family:var(--b27-font-sans); font-size:22px; font-weight:600; line-height:1.3; overflow-wrap:break-word; }
.ref-theme-person p { margin:4px 0; font-size:14px; line-height:1.5; color:var(--b27-ref-muted); }
.ref-theme-person__context { overflow-wrap:anywhere; }
.ref-theme-person .b27-faculty-text-link { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; border:0; background:transparent; color:var(--b27-ref-gold); text-decoration:underline; text-underline-offset:3px; }
.ref-theme-person .b27-faculty-text-link:focus-visible { outline:2px solid var(--b27-ref-gold); outline-offset:4px; }
.ref-theme-person__programme { min-width:0; margin-top:24px; }
.ref-theme-person .ref-theme-talks__label { margin:0 0 12px; font-weight:600; color:var(--b27-ref-ink); }
.ref-theme-talks { list-style:none; padding:0; margin:0 0 8px; }
.ref-theme-talks li + li { margin-top:16px; }
.ref-theme-talks h4 { margin:0 0 4px; font-family:var(--b27-font-sans); font-size:18px; line-height:1.45; font-weight:600; }
.ref-theme-talks h4 a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
.ref-theme-talks h4 a:is(:hover,:focus-visible) { text-decoration:underline; }
.ref-theme-feature__actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:24px; }
@media (min-width:768px) {
 .ref-theme-people[data-speaker-count="1"] .ref-theme-person { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,3fr); gap:32px; --portrait-width:120px; }
 .ref-theme-people[data-speaker-count="1"] .ref-theme-person h3 { font-size:24px; }
 .ref-theme-people[data-speaker-count="1"] .ref-theme-person__programme { margin-top:0; }
}
@media (min-width:1200px) {
 .ref-theme-people[data-speaker-count="1"] .ref-theme-person { --portrait-width:160px; }
}
@media (min-width:768px) and (max-width:1199px) {
 .ref-theme-people[data-speaker-count="3"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1199px) {
 .ref-hero__intro h1 { font-size:48px; }
 .ref-theme-feature { padding-bottom:48px; }
 .ref-theme-feature h2 { font-size:30px; }
}
@media (min-width:768px) and (max-width:1023px) {
 .ref-curtains { height:340px; }
 .ref-curtain { flex-basis:56px; padding:12px; }
}
@media (max-width:767px) {
 .ref-hero__intro { padding-block:24px; }
 .ref-hero__intro h1 { font-size:38px; line-height:1.08; }
 .ref-hero__intro h1 span { display:inline; }
 .ref-curtains { height:auto; min-height:0; flex-wrap:wrap; justify-content:flex-start; gap:8px; padding:0 20px 256px; }
 .ref-curtain,.ref-curtain[aria-selected="true"] { position:static; flex:0 1 auto; overflow:visible; min-height:44px; padding:8px 12px; border:1px solid var(--b27-control-border); border-radius:var(--b27-radius); }
 .ref-curtain:first-child { border-inline-start:1px solid var(--b27-control-border); }
 .ref-curtain[aria-selected="true"] { border-color:var(--b27-ref-gold); background:var(--b27-ref-night); }
 .ref-curtain__name,.ref-curtain[aria-selected="true"] .ref-curtain__name { position:static; display:inline; writing-mode:horizontal-tb; transform:none; font:600 14px/1.5 var(--b27-font-sans); letter-spacing:0; }
 .ref-curtain__image { display:none; top:auto; bottom:0; height:240px; }
 .ref-curtain[aria-selected="true"] .ref-curtain__image { display:block; }
 .ref-curtain::after { display:none; }
 .ref-curtain[aria-selected="true"]::after { display:block; top:auto; bottom:0; height:120px; }
 .ref-curtain[aria-selected="true"] .ref-curtain__mobile-label { display:block; position:absolute; bottom:20px; left:20px; right:20px; z-index:1; font:600 28px/1.15 var(--b27-font-display); text-align:left; pointer-events:none; }
 .ref-curtain:focus-visible { outline-offset:2px; }
 .ref-theme-feature { padding-block:24px 40px; }
 .ref-theme-feature h2 { font-size:28px; }
 .ref-theme-people,.ref-theme-people[data-speaker-count] { grid-template-columns:minmax(0,1fr); gap:20px; }
 .ref-theme-person__identity { grid-template-columns:96px minmax(0,1fr); }
 .ref-theme-person__identity--text { grid-template-columns:minmax(0,1fr); }
 .ref-theme-person__identity img { width:96px; height:120px; }
}
@media (prefers-reduced-motion:reduce) { .ref-curtain,.ref-curtain__image { transition:none; } }
