/* Adaptation of the supplied Osmo Image to Background (Zoom) resource.
   Static layout first; GSAP enhances it only when motion and space allow. */
.s-hero{padding:0;overflow:visible}
.hero__pin{position:relative;padding-top:124px}
.hero__logo-scene{margin-top:40px}
.hero__logo-position{position:relative;container-type:inline-size;aspect-ratio:977/252;width:57.5%;margin-inline:auto}
.hero__logo-position .motion-logo{--logo-unit:calc(100cqw * 252 / 977);padding:0}
.hero__logo-position .motion-logo__left{width:calc(var(--logo-unit) * 284 / 252)}
.hero__logo-position .motion-logo__right{width:calc(var(--logo-unit) * 269 / 252)}
/* Preserve the original SVG's side bearings: O runs from x=287.45 to
   x=705.90, between crops ending at 287 and starting at 711. Without these
   margins flex:1 consumes the kerning and pushes the O against the next r. */
.hero__logo-position .motion-logo__o{margin-left:calc(var(--logo-unit) * .45 / 252);margin-right:calc(var(--logo-unit) * 5.1 / 252)}
/* One continuous stroke; the media mask overlaps its inner half. */
.hero__logo-position .motion-logo__o{border:calc(var(--logo-unit)*.132) solid currentColor;border-radius:9999px}
.hero__logo-position .motion-logo__o::before,.hero__logo-position .motion-logo__o::after,.hero__logo-position .motion-logo__bridge{display:none}
.hero__scroll-cue{display:none}
.hero-motion .hero__scroll-cue{position:absolute;top:calc(100% + clamp(28px,3.5vw,60px));left:0;width:100%;display:flex;align-items:center;flex-direction:column;gap:14px;color:var(--ink);font:500 10px/1.6 var(--body);text-transform:uppercase;letter-spacing:.3em;pointer-events:none}
.hero__scroll-icon{position:relative;width:22px;height:35px;border:1px solid currentColor;border-radius:999px}
.hero__scroll-icon::before{content:'';position:absolute;top:7px;left:8px;width:4px;height:7px;border-radius:4px;background:currentColor;animation:hero-scroll-hint 1.8s cubic-bezier(.22,1,.36,1) infinite}
.hero__scroll-cue.is-away .hero__scroll-icon::before,.hero__scroll-cue.is-paused .hero__scroll-icon::before{animation-play-state:paused}
@keyframes hero-scroll-hint{0%,15%{transform:translateY(0);opacity:0}30%{opacity:1}75%{transform:translateY(10px);opacity:1}100%{transform:translateY(10px);opacity:0}}
.hero__window-start{position:absolute;left:32.48%;right:30.93%;top:33%;height:32.3%;border-radius:999px;pointer-events:none}
.hero__window-end{position:absolute;inset:0;visibility:hidden;pointer-events:none}
.hero__aperture{position:relative;inset:auto;width:auto;height:clamp(250px,45vw,650px);max-height:none;margin:32px var(--gutter) 45px;border-radius:0;overflow:hidden;background:var(--ink)}
.hero__media{position:absolute;inset:0;width:100%;height:100%}
.hero__aperture img,.hero__film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 43%;transform:none;transform-origin:center;filter:none}
.page-en .hero__aperture img:not([data-final=true]){object-position:50% 20%;transform:none}
.hero__film{opacity:0}
.hero__film,.hero__aperture img[data-final=true]{object-position:var(--film-focus-x,50%) var(--film-focus-y,12%)}
.hero__film,.hero__waves{pointer-events:none}
.hero__film::-webkit-media-controls,.hero__waves::-webkit-media-controls{display:none!important}
.hero__film::-webkit-media-controls-enclosure,.hero__waves::-webkit-media-controls-enclosure{display:none!important}
.hero__film.is-ready{opacity:1}
.hero__scrim{position:absolute;inset:0;background:var(--ink);opacity:0;pointer-events:none}
.hero__message{padding-bottom:40px}
.hero__ending .hero__badges,.hero__ending .hero__selos{margin-top:0}

.hero-motion .hero__journey{height:350svh}
.hero-motion .hero__pin{position:sticky;top:0;height:100svh;padding:0;overflow:clip;isolation:isolate}
.hero-motion .hero__masthead{position:absolute;top:124px;left:0;z-index:2}
.hero-motion .hero__logo-scene{position:absolute;top:50%;left:0;width:100%;max-width:none;margin:0;transform:translateY(-50%)}
.hero-motion .hero__aperture{position:absolute;inset:0;width:100%;height:100%;margin:0;border-radius:0;will-change:clip-path;z-index:1}
.hero-motion .hero__message{position:absolute;inset:110px 0 55px;max-width:1450px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:36px;z-index:3;pointer-events:none;color:var(--paper);padding-bottom:0}
.hero-motion .hero__title,.hero-motion.page-en .hero__title{font-size:clamp(58px,7.1vw,112px);line-height:1.04;margin:0;padding:0;max-width:100%;text-align:center;letter-spacing:-.03em}
.hero-motion .title-line,.hero-motion.page-pt .title-line,.hero-motion.page-en .title-line{padding-left:0;max-width:none}
.hero-motion .hero__support{padding:0;margin:0;width:100%;max-width:900px;gap:70px;align-items:center;grid-template-columns:1.2fr 1fr}
.hero-motion .hero__sub{font-size:16px;line-height:1.6;color:var(--paper);max-width:45ch}
.hero-motion .hero__ctas,.hero-motion .hero__actions{gap:4px}
.hero-motion .hero__ctas .btn--primary,.hero-motion .hero__actions .btn--primary{background:var(--paper);color:var(--ink);min-height:60px;min-width:265px;padding:18px 24px}
.hero-motion .hero__ctas .btn--ghost,.hero-motion .hero__actions .btn--ghost{color:var(--paper);font-size:12px}
.hero-motion .hero__support a{pointer-events:inherit}
.site-header.is-film{background:transparent;color:var(--paper);box-shadow:none}
.site-header.is-film .site-header__cta{background:var(--paper);color:var(--ink)}
.site-header.is-film .menu-toggle{border-color:var(--paper)}
.site-header.is-film .site-header__nav.is-open{background:var(--ink);color:var(--paper)}
@media(hover:hover){.hero-motion .hero__ctas .btn--primary:hover,.hero-motion .hero__actions .btn--primary:hover{background:var(--accent);color:var(--ink)}}
@media(max-width:820px){.hero__pin{padding-top:105px}.hero-motion .hero__masthead{top:105px}.hero-motion .hero__message{inset:105px 0 40px;gap:30px}.hero-motion .hero__support{max-width:650px;gap:30px}.hero-motion .hero__sub{font-size:14px}.hero-motion .hero__ctas .btn--primary,.hero-motion .hero__actions .btn--primary{font-size:11px;min-width:0;gap:25px}.hero-motion .hero__title,.hero-motion.page-en .hero__title{font-size:8vw}}
@media(max-width:540px){.hero__pin{padding-top:100px}.hero__logo-scene{margin-top:34px}.hero__aperture{height:330px;margin-block:28px}.hero-motion .hero__journey{height:330svh}.hero-motion .hero__message{inset:96px 0 50px;gap:26px}.hero-motion .hero__title,.hero-motion.page-en .hero__title{font-size:clamp(34px,10.3vw,52px);text-align:left;width:100%}.hero-motion .title-line,.hero-motion.page-pt .title-line,.hero-motion.page-en .title-line{padding:0;max-width:none}.hero-motion .hero__support{grid-template-columns:1fr;gap:22px}.hero-motion .hero__sub{font-size:14px;line-height:1.55;max-width:42ch}.hero-motion .hero__ctas .btn--primary,.hero-motion .hero__actions .btn--primary{min-height:54px;font-size:11px;gap:30px}.hero-motion .hero__ctas .btn--ghost,.hero-motion .hero__actions .btn--ghost{min-height:35px;font-size:11px;gap:34px}.hero__media-toggle{bottom:15px;width:36px;height:36px}.hero-motion .hero__masthead{top:105px}}
@media(max-height:700px) and (min-width:541px){.hero-motion .hero__message{gap:25px;inset-block:105px 30px}.hero-motion .hero__title,.hero-motion.page-en .hero__title{font-size:6.1vw;max-height:none}.hero-motion .hero__sub{font-size:14px}}
@media(prefers-reduced-motion:reduce){.hero__film{display:none}.hero__media-toggle{display:none}}

/* The supplied abstract loop belongs to the opening logo scene. */
.hero__backdrop{position:absolute;inset:0 0 auto;height:calc(190px + 30vw);overflow:hidden;pointer-events:none;z-index:-1;background:var(--paper)}
.hero__backdrop img,.hero__waves{position:absolute;top:0;bottom:0;left:-121px;right:auto;width:calc(100% + 122px);max-width:none;height:100%;object-fit:cover;filter:brightness(1.035)}
.hero__waves{opacity:0}.hero__waves.is-ready{opacity:1}
.hero__pin{isolation:isolate}
.hero-motion .hero__backdrop{height:100%;z-index:0}
.hero-motion .hero__logo-scene{z-index:2;pointer-events:none}
.hero__masthead{justify-content:center;text-align:center}
.hero__masthead .eyebrow{font:500 clamp(10px,1.15vw,18px)/1.7 var(--body);text-transform:uppercase;letter-spacing:.3em;max-width:100%;text-wrap:balance}
.hero__masthead .direction-mark{display:none}
.hero-motion .hero__masthead{top:calc((100vw - 2 * var(--gutter)) * -.016121);transform:translateY(-50%);width:100%;max-width:none}
.site-header.is-hero-intro{background:transparent;box-shadow:none}
.site-header.is-hero-intro .site-header__logo{visibility:hidden;opacity:0;pointer-events:none}
.site-header__logo{transition:opacity .22s}
.hero-motion .hero__title,.hero-motion.page-en .hero__title{font-size:clamp(48px,6.5vw,104px);font-weight:500;line-height:1.1;letter-spacing:-.04em}
.hero-motion .hero__support{gap:40px}
@media(max-width:540px){
 .hero__masthead .eyebrow{font-size:10px;line-height:1.9}
 .hero-motion .hero__masthead{top:calc(-18px - (100vw - 2 * var(--gutter)) * .016121);transform:translateY(-100%)}
 .hero__backdrop img,.hero__waves{object-position:25% 50%}
 .hero-motion .hero__title,.hero-motion.page-en .hero__title{font-size:clamp(28px,8.4vw,46px);line-height:1.14}
 .hero-motion .hero__support{gap:20px}
}
@media(prefers-reduced-motion:reduce){.hero__waves{display:none}}

