/* Speaking owns one viewport, not a scrolling document or slide carousel. */
html:has(body.speaking-cinema-page),body.speaking-cinema-page { height:100%; overflow:hidden; overscroll-behavior:none; }
body.speaking-cinema-page .site-main { position:fixed; inset:72px 0 0; padding:0 !important; }
body.speaking-cinema-page .mw-static-nav { display:none; }
body.speaking-cinema-page:not(:has(#site-navigation[data-mw-nav-ready])) #site-navigation { height:auto; min-height:72px; }
body.speaking-cinema-page:not(:has(#site-navigation[data-mw-nav-ready])) #mobile-site-menu { display:block !important; position:static; width:100%; max-height:150px; border:0; margin:0; padding:0 0 8px; background:#070e19; }
body.speaking-cinema-page:not(:has(#site-navigation[data-mw-nav-ready])) #mobile-site-menu .mobile-nav-list { display:flex; flex-wrap:wrap; gap:0 12px; }
body.speaking-cinema-page:not(:has(#site-navigation[data-mw-nav-ready])) .site-main { top:162px; }
.speaking-cinema { --film-gutter:clamp(18px,6vw,110px); position:relative; width:100%; height:100%; overflow:hidden; isolation:isolate; background:#070e19; color:var(--mw-text); }
.speaking-cinema [hidden] { display:none !important; }
/* The end card must not paint while an autoplay-capable visit is loading.
   No JavaScript and reduced-motion visits retain the static invitation. */
@media (prefers-reduced-motion: no-preference) {
  html.speaking-film-js .speaking-cinema[data-state="ready"] .speaking-invitation {
    visibility:hidden;
    pointer-events:none;
  }
}
.speaking-film-surface { position:absolute; inset:0; overflow:hidden; }
.speaking-film-poster,.speaking-film-canvas { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% center; }
.speaking-film-copy { position:absolute; inset:auto auto 0 0; width:min(82%,1100px); padding:40px var(--film-gutter) max(90px,10vh); pointer-events:none; z-index:1; isolation:isolate; }
.speaking-film-copy::before { content:""; position:absolute; inset:-70px -90px 0 0; z-index:-1; background:radial-gradient(ellipse at bottom left,#070e19d9 0%,#070e1970 42%,#070e1900 76%); }
.speaking-film-copy > p { position:relative; margin:0; max-width:17ch; color:#fff; font:600 clamp(28px,3vw,64px)/1.1 var(--mw-heading); letter-spacing:-.035em; text-wrap:balance; text-shadow:0 2px 12px #070e19b3; }
.speaking-invitation { position:absolute; inset:0; display:grid; place-items:center; padding:32px 6vw 90px; background:linear-gradient(90deg,#fffffff0,#ffffffc2 65%,#ffffff25); }
.speaking-booking-card { display:grid; grid-template-columns:clamp(200px,23vw,400px) minmax(0,1fr); align-items:center; gap:clamp(32px,5vw,100px); width:min(100%,1600px); }
.speaking-booking-card > img { width:100%; aspect-ratio:5/6; object-fit:cover; object-position:62% 35%; border-radius:24px; }
.speaking-booking-card h1 { margin:0 0 28px; color:#070e19; font:600 clamp(48px,5.8vw,104px)/1.03 var(--mw-heading); letter-spacing:-.05em; }
.speaking-booking-card h1 span { color:#ff7c3b; }
.speaking-card-summary { margin:0 0 36px; color:#26374a; font:600 clamp(16px,1.5vw,25px)/1.5 var(--mw-body); letter-spacing:.06em; }
.speaking-primary { display:inline-flex; justify-content:center; align-items:center; gap:14px; min-height:56px; max-width:100%; padding:18px 28px; border-radius:999px; background:#ff7c3b; color:#070e19; text-decoration:none; font:700 clamp(14px,1.2vw,20px)/1.3 var(--mw-body); }
.speaking-primary:hover { background:#ff965f; }
.speaking-film-controls { position:absolute; bottom:max(18px,env(safe-area-inset-bottom)); right:var(--film-gutter); display:flex; align-items:center; gap:8px; z-index:2; }
.speaking-film-controls button { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:44px; padding:10px 14px; border:1px solid #71839980; border-radius:999px; background:#070e19c9; color:#f3f2ea; font:600 12px/1.4 var(--mw-body); cursor:pointer; }
.speaking-film-controls button:hover { border-color:#ff7c3b; }
.speaking-film-progress { margin-left:4px; height:2px; width:56px; background:#75869f80; }
.speaking-film-progress i { display:block; width:100%; height:100%; background:#ff7c3b; transform:scaleX(0); transform-origin:left; }
.speaking-cinema :is(a,button):focus-visible { outline:2px solid #ffad7b; outline-offset:5px; }
@media(min-width:2200px) {
  .speaking-booking-card { width:min(100%,2600px); grid-template-columns:clamp(400px,16vw,600px) 1fr; gap:6vw; }
  .speaking-booking-card h1 { font-size:clamp(104px,4.8vw,184px); }
  .speaking-primary { font-size:clamp(20px,1vw,32px); min-height:72px; }
  .speaking-card-summary { font-size:clamp(25px,1.1vw,40px); }
}
@media(max-width:699px) {
  .speaking-film-copy { width:100%; padding:30px 18px 94px; }
  .speaking-film-copy > p { font-size:clamp(28px,7.5vw,36px); max-width:16ch; }
  .speaking-invitation { padding:18px 18px 86px; }
  .speaking-booking-card { grid-template-columns:1fr; gap:28px; text-align:center; }
  .speaking-booking-card > img { width:min(48vw,24vh,210px); margin:auto; border-radius:18px; }
  .speaking-booking-card h1 { font-size:clamp(38px,10.5vw,64px); margin-bottom:20px; }
  .speaking-card-summary { font-size:14px; margin-bottom:24px; }
  .speaking-primary { width:100%; min-height:52px; font-size:13px; gap:8px; padding:14px 10px; }
  .speaking-film-controls { right:18px; gap:6px; }
  .speaking-film-controls button { font-size:11px; padding:10px 12px; }
  .speaking-film-progress { width:32px; }
}
@media(max-height:500px) and (min-width:700px) {
  .speaking-invitation { padding:14px 6vw 70px; }
  .speaking-booking-card { grid-template-columns:130px 1fr; width:min(100%,780px); gap:32px; }
  .speaking-booking-card > img { width:130px; }
  .speaking-booking-card h1 { font-size:36px; margin:0 0 12px; }
  .speaking-card-summary { margin-bottom:12px; font-size:12px; }
  .speaking-primary { min-height:44px; font-size:12px; padding:10px 16px; }
  .speaking-film-copy > p { font-size:26px; max-width:22ch; }
  .speaking-film-copy { padding-top:16px; padding-bottom:76px; }
}
@media(prefers-reduced-motion:reduce) { .speaking-cinema * { transition:none !important; } }
