/* Six authored stops. Motion settles after native scrollend; input stays passive. */
html.story-snap{scroll-snap-type:none}
.stage-ready:not(.reduced) .product-story{height:360svh}
.ps-snap-anchor{position:absolute;left:0;width:1px;height:1px;opacity:0;pointer-events:none;scroll-snap-align:start;scroll-snap-stop:always;scroll-margin:0}
.ps-caption{left:80px;right:80px;top:18px;display:block;text-align:center;max-width:1120px;margin-inline:auto;color:white;pointer-events:none}
.ps-caption h2{max-width:none;font-size:18px;font-weight:500;line-height:1.3;letter-spacing:0;color:#C3CCE0}
.ps-reel{height:66px;position:relative;overflow:hidden;margin-top:4px;mask-image:linear-gradient(transparent,#000 15%,#000 85%,transparent)}
.ps-reel-line{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:34px;line-height:1.16;font-weight:500;letter-spacing:-.01em;text-wrap:balance;transform-origin:50% 50%;will-change:transform,opacity,filter}
.ps-caption p{max-width:760px;margin:3px auto 0;text-align:center;font-size:14px;line-height:1.55;color:#C3CCE0;min-height:22px}
.ps-step-nav{position:absolute;right:12px;top:50%;transform:translateY(-50%);z-index:18;display:flex;flex-direction:column;gap:1px}
.ps-step-button{position:relative;width:44px;height:44px;border:0;padding:0;background:transparent;display:grid;place-items:center;color:white}
.ps-step-button>i{display:block;width:7px;height:7px;border:1px solid #91A6D0;border-radius:50%;background:transparent;transition:background .18s,transform .18s}
.ps-step-button[data-status=past]>i{background:#8BA2D5;border-color:#8BA2D5}
.ps-step-button[aria-current=step]>i{width:11px;height:11px;background:#E4EAFF;border-color:#E4EAFF;transform:scale(1.08)}
.ps-step-button:focus-visible{outline:2px solid #E4EAFF;outline-offset:-4px;border-radius:8px}
.ps-step-name{position:absolute;right:44px;white-space:nowrap;background:white;color:#101827;border-radius:6px;padding:7px 11px;font-size:12px;line-height:1.5;opacity:0;visibility:hidden;transform:translateX(5px);transition:opacity .16s,transform .16s;pointer-events:none;box-shadow:0 5px 18px #030a1d20}
.ps-step-button:hover .ps-step-name,.ps-step-button:focus-visible .ps-step-name{opacity:1;visibility:visible;transform:none}
.ps-fan-tabs{position:absolute;left:24px;right:24px;bottom:69px;z-index:16;display:none;justify-content:center;gap:6px}
.ps-fan-tabs button{min-height:44px;padding:8px 10px;border:1px solid #6D82AA;border-radius:5px;font-size:11px;background:#101D38;color:white}
.ps-fan-tabs button[aria-pressed=true]{background:#E4EAFF;color:#101D38;border-color:#E4EAFF}
.ps-static-nav{display:none}.reduced .ps-step-nav{display:none}.reduced .ps-static-nav{top:148px;justify-content:center}
.reduced .ps-reel{mask-image:none}.reduced .ps-reel-line{filter:none!important;will-change:auto}.reduced .ps-caption{top:18px}
.final-cta{max-width:1280px;margin:auto;padding:104px 48px 96px;text-align:center;background:#fff;scroll-margin-top:calc(var(--header-h) + 24px)}
.final-cta h2{font-size:48px;font-weight:500;line-height:1.18;letter-spacing:-.012em;max-width:1000px;margin:auto;text-wrap:balance}
.final-cta>p{max-width:760px;margin:24px auto 0;font-size:18px;line-height:1.65;color:var(--muted);text-wrap:balance}
.final-cta .primary{margin-top:30px;justify-content:center;min-height:52px;gap:25px}.final-cta .cta-offer{font-size:13px;margin-top:16px}
@media(max-width:1100px) and (min-width:701px){.ps-reel-line{font-size:29px}.ps-caption{left:48px;right:70px}.ps-caption h2{font-size:16px}.ps-caption p{font-size:13px}.ps-step-nav{right:4px}}
@media(max-width:700px){
 .ps-caption{left:24px;right:24px;top:12px}.ps-caption h2{font-size:11px;line-height:1.3;letter-spacing:0}.ps-reel{height:66px;margin-top:3px}.ps-reel-line{font-size:24px;line-height:1.12;letter-spacing:-.005em}.ps-caption p{font-size:12px;line-height:1.5;margin-top:2px;min-height:36px}
 .ps-step-nav{left:50%;right:auto;top:134px;transform:translateX(-50%);flex-direction:row;gap:0}.ps-step-button{width:44px;height:44px}.ps-step-button>i{border-radius:2px;width:20px;height:3px;border:0;background:#647AA3}.ps-step-button[data-status=past]>i{background:#91A6D0}.ps-step-button[aria-current=step]>i{width:20px;height:3px;background:#E4EAFF;transform:none}.ps-step-name{display:none}
 .ps-fan-tabs.is-visible{display:flex}.ps-static-nav button{min-height:44px}.reduced .ps-static-nav{top:136px}.reduced .ps-fan-tabs{bottom:76px}
 .final-cta{padding:66px 24px 54px}.final-cta h2{font-size:33px;line-height:1.18;letter-spacing:-.008em}.final-cta>p{font-size:16px;margin-top:22px}.final-cta .primary{width:100%;font-size:14px;padding-inline:16px}.final-cta .cta-offer{font-size:12px}
}
@media(prefers-reduced-motion:reduce){html.story-snap{scroll-snap-type:none}.ps-snap-anchor{scroll-snap-align:none}.ps-reel-line{filter:none!important}.ps-step-button i,.ps-step-name{transition:none}}
.ps-sr-only{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important}
/* Motion settles at native scrollend: CSS proximity pulled short wheel input backwards in Chromium. */html.story-snap{scroll-snap-type:none}

/* Four narrative stops, one continuous native portfolio scroll. */
.stage-ready:not(.reduced) .product-story{height:240svh}
@media(max-width:700px){.stage-ready:not(.reduced) .product-story{height:235svh}}
