/* --- Custom video player, control scale ---
	   The player's icons carry their size as SVG width/height attributes, set in
	   the page footer script. Those are presentation attributes, so any CSS rule
	   beats them - scaling here avoids re-transmitting the whole 12KB player block
	   by hand. viewBox is untouched, so the artwork just redraws larger.
	   Current: 1.2x on top of the earlier 5% and 10% passes. */
	.vp .vp-btn svg{width:22px; height:22px;}
.vp .vp-sound svg{width:24px; height:24px;}
.vp .vp-big svg{width:86px; height:86px;}
.vp .vp-t{font-size:13px;}
.vp .vp-big svg{width:67px; height:67px;}
/* Mono is the functional register only - labels, timecodes, status. */
.brand-v2 .heading-h6-size,
.brand-v2 .link-box-small .text-400,
.brand-v2 .vp-t{font-family:var(--v2-mono);}
.vp{position:absolute;inset:0;background:#000;overflow:hidden}
.vp.vp-fx{position:fixed;inset:0;z-index:99999;width:100vw;height:100vh}
.vp-frame{position:absolute;inset:0}
.vp-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none}
/* posterless start: hold black until the first frame is really there */
.vp.vp-fade .vp-frame iframe{opacity:0;transition:opacity .42s ease}
.vp.vp-fade.vp-lit .vp-frame iframe{opacity:1}
@media (prefers-reduced-motion:reduce){.vp.vp-fade .vp-frame iframe{transition:none}}
.vp-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;cursor:pointer;z-index:1}
.vp-scrim{position:absolute;inset:0;z-index:2;background:rgba(0,0,0,.25);pointer-events:none;transition:opacity .3s ease}
.vp.on .vp-scrim{opacity:0}
.vp-big{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;-webkit-appearance:none;appearance:none;background:none;border:0;padding:0;-webkit-tap-highlight-color:transparent;color:#fff;cursor:pointer;
  /* box-shadow, not filter: drop-shadow(). A filter promotes the button to its
     own compositing layer, and over a video the browser then composites the
     frame beneath it in a separate pass — which showed as a faint rectangular
     block around the play button. The button is square with the circle
     inscribed, so a 50% radius gives the identical soft round shadow with no
     layer of its own. */
  border-radius:50%;box-shadow:0 2px 22px rgba(0,0,0,.55);
  transition:transform .25s ease,box-shadow .25s ease}
.vp-big:hover{transform:translate(-50%,-50%) scale(1.07);box-shadow:0 2px 28px rgba(0,0,0,.7)}
.vp-bar{position:absolute;left:0;right:0;bottom:0;z-index:5;display:flex;align-items:center;gap:16px;padding:16px 18px;background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,0));opacity:0;pointer-events:none;transition:opacity .25s}
.vp.on:hover .vp-bar,.vp.on.paused .vp-bar,.vp.on.vp-fx .vp-bar{opacity:1;pointer-events:auto}
.vp-btn{-webkit-appearance:none;appearance:none;background:none;border:0;padding:6px;-webkit-tap-highlight-color:transparent;color:#fff;cursor:pointer;opacity:.7;display:flex;align-items:center;transition:opacity .2s}
.vp-btn:hover{opacity:1}
.vp-btn svg{display:block}
/* The visible track stays 3px, but 3px is a brutal thing to hit with a mouse —
   that is why the scrubber felt unreliable. The pseudo-element extends the
   clickable region to 21px without touching the layout box, so the position
   maths in player.vimeo.js (which reads getBoundingClientRect on this element)
   is completely unaffected. */
.vp-scrub{flex:1 1 auto;height:3px;background:rgba(255,255,255,.25);cursor:pointer;position:relative}
.vp-scrub::before{content:"";position:absolute;left:0;right:0;top:-9px;bottom:-9px}
.vp-scrub:hover{background:rgba(255,255,255,.4)}
.vp-scrub i{position:absolute;left:0;top:0;bottom:0;background:#fff;width:0;display:block}
.vp-t{color:#fff;font-size:11px;letter-spacing:.08em;opacity:.6;font-variant-numeric:tabular-nums}
.vp-vol{position:relative;display:flex;align-items:center}
.vp-vpop{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);padding:14px 12px;background:rgba(12,12,12,.92);border-radius:5px;opacity:0;visibility:hidden;transition:opacity .18s,visibility .18s;cursor:pointer}
.vp-vol:hover .vp-vpop{opacity:1;visibility:visible}
.vp-vtrack{position:relative;width:3px;height:74px;background:rgba(255,255,255,.28);border-radius:2px}
.vp-vfill{position:absolute;left:0;right:0;bottom:0;height:100%;background:#fff;border-radius:2px;display:block}
.vp-vthumb{position:absolute;left:50%;bottom:100%;width:11px;height:11px;border-radius:50%;background:#fff;transform:translate(-50%,50%);pointer-events:none;display:block}
.vp-ov{position:fixed;inset:0;z-index:9999;background:#000;display:none}
.vp-ov.open{display:block}
.vp-ovc{position:absolute;top:16px;right:22px;z-index:10;background:none;border:0;color:#fff;font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;opacity:.7;padding:6px}
.vp-ovc:hover{opacity:1}
.vp-bar{gap:10px;padding:10px 12px}
.vp-big svg{width:56px;height:56px}