/* Scoped to the progressive Homepage Hero only. */
.bf-home-hero:has([data-home-journey]){width:100%;max-width:none;padding:0;margin-inline:0;}
.bf-home-hero:has([data-home-journey])>.bf-home__container{width:100%;max-width:none;margin-inline:0;}
[data-home-hero][data-home-journey]{position:relative;width:100%;max-width:none;overflow:hidden;touch-action:pan-y;padding:0;box-sizing:border-box;}
[data-home-journey] [data-home-stage]{position:relative;display:block;width:100%;height:auto;min-height:0;overflow:hidden;padding:0;}
/* The same artwork is enlarged from its first paint. JS adopts this camera;
   slow/absent scripts simply leave the completed composition, never replay it. */
@media (prefers-reduced-motion: no-preference) {
  [data-home-journey] [data-hero-first-paint]:not([data-hero-entered]) {
    transform-origin: var(--bf-hero-start-x, 50%) var(--bf-hero-start-y, 50%);
    animation: bf-hero-camera-enter 2.2s cubic-bezier(.215,.61,.355,1) both;
  }
}
@keyframes bf-hero-camera-enter { from { transform: scale(1.24); } to { transform: scale(1); } }
/* Match the approved demo: edge-to-edge artwork, natural height, overlay controls.
   Never trade image width for a fixed viewport-height frame or arrow gutters. */
.wp-site-blocks [data-home-journey] [data-home-stage]>.bf-home-image,
.wp-site-blocks [data-home-journey] [data-home-stage] .bf-hero-motion-layer {
  display: block;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: none !important;
  object-fit: contain;
  margin: 0 !important;
}
[data-home-journey] .bf-hero-living{position:absolute;pointer-events:none;max-width:none;max-height:none;}
[data-home-journey] .bf-hero-living[hidden]{display:none;}
[data-home-journey] .bf-hero-motion-screen{position:absolute;inset:0;overflow:hidden;pointer-events:none;}
[data-home-journey] .bf-hero-motion-layer{position:absolute;display:block;max-width:none;max-height:none;object-fit:contain;will-change:transform,opacity;}
[data-home-journey] [data-home-previous],[data-home-journey] [data-home-next]{position:absolute;top:50%;transform:translateY(-50%);z-index:4;}
[data-home-journey] [data-home-previous]{left:12px;}[data-home-journey] [data-home-next]{right:12px;}
[data-home-journey] .bf-hero-motion-toggle { position:absolute; top:auto; right:max(16px, env(safe-area-inset-right)); bottom:max(16px, env(safe-area-inset-bottom)); z-index:5; display:grid; place-items:center; box-sizing:border-box; width:44px; height:44px; padding:0; border:0; border-radius:2px; background:transparent; color:#111; font-size:0; cursor:pointer; }
/* The tiny icon is independent of the 44px accessible hit area. */
[data-home-journey] .bf-hero-motion-toggle::before { content:'Ⅱ'; font-size:12px; line-height:1; text-shadow:0 0 2px rgb(255 255 255 / .9); }
[data-home-journey] .bf-hero-motion-toggle[aria-pressed="true"]::before { content:'▶'; }
[data-home-journey] .bf-hero-motion-toggle:is(:hover,:focus-visible) { background:rgb(245 245 242 / .5); }
[data-home-journey] .bf-hero-motion-toggle:focus-visible { outline:2px solid #111; outline-offset:3px; }
[data-home-journey] .bf-hero-lens{position:absolute;left:0;top:0;width:156px;height:156px;border:1px solid #fff;border-radius:50%;box-shadow:0 3px 18px #0004;pointer-events:none;overflow:hidden;z-index:3;visibility:hidden;background-repeat:no-repeat;}
[data-home-journey] .bf-hero-lens canvas{display:block;width:156px;height:156px;}
[data-home-journey] .bf-hero-lens canvas[hidden]{display:none;}
[data-home-journey] [hidden]{display:none!important;}

/* A signature, not a card: only the letters sit over the artwork. */
[data-home-journey] .bf-home-hero__intro {
  --intro-edge: clamp(28px, 3.8vw, 64px);
  position: absolute;
  z-index: 5;
  left: max(var(--intro-edge), 56px);
  bottom: max(var(--intro-edge), calc(100% - 100svh + var(--intro-edge)));
  width: min(380px, calc(100% - 2 * var(--intro-edge)));
  color: var(--bf-hero-copy-color, #111111);
  background: transparent;
  border: 0;
  padding: 0;
  box-shadow: none;
  pointer-events: none;
  text-shadow: 0 1px 2px var(--bf-hero-copy-shadow, rgb(245 245 242 / .5));
}
[data-home-journey] .bf-home-hero__intro > * { margin: 0; max-width: none; }
/* Start with the first paint, even when scripts are slow or unavailable. */
@media (prefers-reduced-motion: no-preference) {
  [data-home-journey] [data-hero-intro-item] { animation: bf-hero-intro-reveal .65s cubic-bezier(.22, .61, .36, 1) both; }
  [data-home-journey] [data-hero-intro-item]:nth-child(2) { animation-delay: .08s; }
  [data-home-journey] [data-hero-intro-item]:nth-child(3) { animation-delay: .16s; }
  [data-home-journey] [data-hero-intro-item]:nth-child(4) { animation-delay: .24s; }
  [data-home-journey] [data-hero-intro][data-intro-revealed] > [data-hero-intro-item] { animation: none; }
}
@keyframes bf-hero-intro-reveal {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
[data-home-journey] .bf-home-hero__eyebrow {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .13em;
  line-height: 1.3;
  text-transform: uppercase;
}
[data-home-journey] .bf-home-hero__name {
  margin-top: 9px;
  font-size: clamp(64px, 5.25vw, 80px);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: .98;
}
[data-home-journey] .bf-home-hero__description {
  margin-top: 14px;
  font-size: clamp(18px, 1.45vw, 22px);
  line-height: 1.4;
  text-wrap: pretty;
}
[data-home-journey] a.bf-home-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 44px;
  margin-top: 17px;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 500;
  color: inherit;
  background: transparent;
  text-decoration: none;
  cursor: pointer;
  pointer-events: auto;
}
[data-home-journey] .bf-home-hero__cta-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid currentColor;
  border-radius: 50%;
}
[data-home-journey] .bf-home-hero__cta-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.3;
  transition: transform 180ms ease-out;
}
[data-home-journey] .bf-home-hero__cta:is(:hover, :focus-visible) > span:first-child {
  text-decoration: underline;
  text-underline-offset: .22em;
}
[data-home-journey] .bf-home-hero__cta:is(:hover, :focus-visible) svg { transform: translateX(2px); }
[data-home-journey] .bf-home-hero__cta:focus-visible { outline: 2px solid currentColor; outline-offset: 6px; }
@media (min-width: 600px) and (max-width: 899px) {
  [data-home-journey] .bf-home-hero__intro { width: 320px; }
  [data-home-journey] .bf-home-hero__name { font-size: clamp(48px, 7vw, 64px); }
  [data-home-journey] .bf-home-hero__description { font-size: 18px; }
}
@media (max-width: 599px) {
  .bf-home-hero:has([data-home-journey]) { padding-top: 56px; }
  [data-home-hero][data-home-journey] { display: grid; grid-template-columns: minmax(0,1fr); }
  [data-home-journey] [data-home-stage] { grid-area: 1 / 1; }
  [data-home-journey] .bf-home-hero__intro {
    --intro-edge: 16px;
    position: relative;
    inset: auto;
    grid-area: 2 / 1;
    width: auto;
    margin: 24px 4vw 8px;
    color: #111111;
    text-shadow: none;
  }
  [data-home-journey] .bf-home-hero__eyebrow { font-size: 10px; letter-spacing: .1em; }
  [data-home-journey] .bf-home-hero__name { margin-top: 8px; font-size: clamp(40px,11vw,48px); }
  [data-home-journey] .bf-home-hero__description { margin-top: 12px; font-size: 17px; line-height: 1.45; }
  [data-home-journey] a.bf-home-hero__cta { margin-top: 14px; min-height: 44px; font-size: 22px; gap: 10px; }
  [data-home-journey] :is([data-home-previous],[data-home-next]) { position: relative; grid-area: 1 / 1; inset: auto; align-self: center; margin-inline: 10px; transform: none; }
  [data-home-journey] [data-home-previous] { justify-self: start; }
  [data-home-journey] [data-home-next] { justify-self: end; }
  [data-home-journey] .bf-hero-motion-toggle { position:relative; grid-area:1/1; inset:auto; justify-self:end; align-self:end; margin:0 max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) 0; }
  [data-home-journey] .bf-home-hero__cta-icon { width: 28px; height: 28px; }
  [data-home-journey] .bf-home-hero__cta-icon svg { width: 16px; height: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  [data-home-journey] .bf-home-hero__cta-icon svg { transition: none; transform: none !important; }
}
