.fall-intro{overflow:hidden}.fall-stage{position:relative;max-width:1440px;margin:auto;aspect-ratio:16/9;overflow:hidden}.fall-stage video{display:block;width:100%;height:100%;object-fit:contain}.rope-cards{position:absolute;inset:0;pointer-events:none}.rope-card{position:absolute;left:calc(43% + var(--i)*8.5%);top:46%;width:8%;padding:5px;background:#fffdf8;border-radius:6px;box-shadow:2px 7px 14px #39272926;transform-origin:50% 0;opacity:0;transform:translateX(100vw) rotate(6deg);will-change:transform}.rope-card img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px}.rope-card span{display:block;padding:7px 0 2px;font-size:clamp(8px,1vw,13px);text-align:center;white-space:nowrap}.fall-loading #all-services,.fall-loading .service-chat,.fall-loading footer{display:none}.fall-landing #all-services .service-tile{opacity:0}.fall-landing #all-services .service-tile.landed{opacity:1;transition:opacity .15s}.flying-service{position:absolute;margin:0;z-index:10;pointer-events:none;transform-origin:top left;will-change:transform}.flying-service img{width:100%;height:100%;object-fit:cover;border-radius:14px;box-shadow:0 12px 24px #39272920}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.fall-intro{margin-bottom:28px}@media(max-width:680px){.fall-stage{aspect-ratio:4/3}.fall-stage video{object-fit:cover;object-position:left center}.rope-card{left:calc(50% + var(--i)*6%);top:48%;width:15%;padding:3px}.rope-card span{font-size:9px;padding:4px 0 1px}.fall-intro{margin-bottom:20px}}@media(prefers-reduced-motion:reduce){.rope-cards{display:none}}
@media(min-width:681px){.fall-stage{width:100%;max-width:min(1440px,calc((100svh - 180px)*16/9))}}
/* The final title lands in the empty space beside Boo. */
.fall-heading{position:absolute;left:49%;right:5%;top:30%;text-align:center;color:var(--ink,#3d292a);pointer-events:none;visibility:hidden}
.fall-heading h1{margin:0;font-family:inherit;font-size:clamp(46px,7.5vw,112px);font-weight:700;line-height:1.05;letter-spacing:-.055em}
.fall-heading p{margin:20px 0 0;font-size:clamp(12px,1.3vw,19px);line-height:1.6;letter-spacing:.025em}
.mobile-break{display:none}.fall-heading.is-visible{visibility:visible}
.fall-heading.is-dropping h1{animation:title-drop 950ms both}
.fall-heading.is-dropping p{animation:subtitle-drop 800ms 250ms both}
@keyframes title-drop{0%{opacity:0;transform:translateY(-360px) rotate(-9deg)}65%{opacity:1;transform:translateY(9px) rotate(3deg)}82%{transform:translateY(-12px) rotate(-1.5deg)}100%{opacity:1;transform:none}}
@keyframes subtitle-drop{0%{opacity:0;transform:translateY(-240px) rotate(4deg)}70%{opacity:1;transform:translateY(5px) rotate(-1deg)}86%{transform:translateY(-5px)}100%{opacity:1;transform:none}}
@media(max-width:680px){.fall-heading{left:48%;right:3%;top:13%}.fall-heading h1{font-size:clamp(34px,8.3vw,56px)}.fall-heading p{margin-top:12px;font-size:clamp(10px,2.65vw,15px);line-height:1.5}.mobile-break{display:block}}
@media(prefers-reduced-motion:reduce){.fall-heading{visibility:visible}.fall-heading.is-dropping h1,.fall-heading.is-dropping p{animation:none}}
/* Keep the rope connected to the viewport edge, independent of window height. */
@media(min-width:681px){
  .fall-stage{width:100%;max-width:none;container-type:inline-size}
  .fall-stage video{width:100%;height:100%;object-fit:cover}
  .fall-heading{left:58%;right:5%;top:25%;text-align:left}
  .fall-heading h1{font-size:clamp(38px,7cqw,112px);margin:0;white-space:nowrap}
  .fall-heading p{font-size:clamp(12px,1.25cqw,19px);margin-top:24px;max-width:100%;text-wrap:balance}
}

.services-intro-seen .rope-cards{display:none}.services-intro-seen .fall-heading{visibility:visible}.services-intro-seen .fall-heading h1,.services-intro-seen .fall-heading p{animation:none}
