/* V52.63 — deterministic JS page-transition engine with first-paint secondary-nav handoff lock. Main + secondary navigation are locked above the moving page canvas.
   Native Cross-Document View Transition is intentionally NOT opted in. YuanFeng title animations below stay unchanged. */
:root{--yf-paul-ease:cubic-bezier(.625,.05,0,1);--yf-paul-duration:.82s;}
html,body{background:#fff;}
html.yf-vt-lock,html.yf-vt-lock body{overflow-x:hidden;}

/* Hold YuanFeng's own editorial/title motion until the page hand-off is complete. */
html.yf-page-enter-block .yf-case-card,
html.yf-page-enter-block .yf-v37-reveal,
html.yf-page-enter-block .yf-reveal,
html.yf-page-enter-block .yf-section-heading-inner,
html.yf-page-enter-block .yf-products-intro .yf-title-line-inner,
html.yf-page-enter-block .yf-products-intro .yf-title-support{animation:none!important;transition:none!important;}
html.yf-page-enter-block .yf-section-heading-inner,
html.yf-page-enter-block .yf-products-intro .yf-title-line-inner,
html.yf-page-enter-block .yf-products-intro .yf-title-support{opacity:0!important;}
html.yf-page-enter-block [data-delighter],html.yf-page-enter-block .delighter{animation-play-state:paused!important;}

/* One fallback viewport = one page canvas, matching the reference module instead of animating every child separately. */
html.yf-v520-fallback-arrival,html.yf-v520-fallback-running,
html.yf-v520-fallback-arrival body,html.yf-v520-fallback-running body{overflow-x:hidden!important;}
html.yf-v520-fallback-arrival[data-yf-vt-mode="full"] .main>:not(.menuList):not(.menuBg):not(.topMenu):not(.subMenu){visibility:hidden!important;}
.yf-vt-fallback-viewport{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;overflow:hidden;perspective:100em;z-index:2147482500;pointer-events:none;transform-origin:center bottom;will-change:transform,opacity;background:#fff;}
.yf-vt-fallback-page{position:absolute;left:0;top:0;width:100%;min-height:100%;transform-origin:center bottom;will-change:transform,opacity;backface-visibility:hidden;}
.yf-vt-fallback-viewport.is-enter{z-index:2147482501;}
body.yf-vt-fallback-active .topMenu{z-index:2147483002!important;}
body.yf-vt-fallback-active .subMenu{z-index:2147483001!important;}
html.yf-v520-fallback-arrival .subMenu,
html.yf-v520-fallback-running .subMenu,
body.yf-vt-fallback-active .subMenu{visibility:visible!important;opacity:1!important;transform:none!important;will-change:auto!important;}
/* V52.63: target-document secondary navigation must not paint by itself while the page canvas is still hidden.
   The runtime reveals it in the same paint that the incoming viewport becomes ready, removing the brief top-left submenu flash. */
html.yf-v520-fallback-arrival:not(.yf-vt-subnav-ready) .subMenu{
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
html.yf-v520-fallback-arrival.yf-vt-subnav-ready .subMenu{
  visibility:visible!important;
  opacity:1!important;
  pointer-events:auto!important;
}

@media(prefers-reduced-motion:reduce){
  html.yf-v520-fallback-arrival[data-yf-vt-mode="full"] .main>:not(.menuList):not(.menuBg):not(.topMenu):not(.subMenu){visibility:visible!important;}
  .yf-vt-fallback-viewport,.yf-vt-fallback-page{animation:none!important;transition:none!important;transform:none!important;opacity:1!important;}
}

/* Case/news page headings. Two safeguards are intentional:
   1) extra clearance after the fixed main + secondary navigation stack;
   2) extra top room inside the clipped line so tight font metrics never shave glyph tops. */
.yf-section-heading{
  position:relative;
  z-index:3;
  margin-top:126px;
  padding:clamp(38px,4.8vw,76px) clamp(30px,6vw,108px) clamp(30px,4vw,58px);
  background:#fff;
  opacity:1;
  scroll-margin-top:126px;
}
.yf-section-heading h1{
  margin:0;
  font-weight:800;
  font-size:clamp(58px,7.2vw,118px);
  line-height:.98;
  letter-spacing:-.055em;
  color:#292525;
}
.yf-section-heading-line{
  display:block;
  overflow:hidden;
  padding-top:.10em;
  padding-bottom:.08em;
  margin-top:-.10em;
}
.yf-section-heading-inner{display:block;transform:translate3d(0,112%,0) skewY(4deg);transform-origin:left bottom;opacity:.001;will-change:transform,opacity;}
.yf-section-heading.yf-heading-motion-ready .yf-section-heading-inner{animation:yf-v50-heading-rise .60s cubic-bezier(.16,1,.3,1) both;}
@keyframes yf-v50-heading-rise{0%{transform:translate3d(0,112%,0) skewY(4deg);opacity:.001}100%{transform:translate3d(0,0,0) skewY(0);opacity:1}}

/* Products title keeps the same clipped-rise language. */
.yf-products-intro h1>span{display:block;overflow:hidden;line-height:.96;padding-top:.05em;padding-bottom:.05em;margin-top:-.05em;}
.yf-products-intro h1>span>.yf-title-line-inner{display:block;transform:translate3d(0,110%,0) skewY(4deg);transform-origin:left bottom;opacity:.001;will-change:transform,opacity;}
.yf-products-intro .yf-products-rule,
.yf-products-intro h2,
.yf-products-intro>p{opacity:0;transform:translate3d(0,18px,0);}
.yf-products-intro.yf-title-motion-ready h1>span>.yf-title-line-inner{animation:yf-v50-title-rise .58s cubic-bezier(.16,1,.3,1) both;}
.yf-products-intro.yf-title-motion-ready h1>span:nth-child(2)>.yf-title-line-inner{animation-delay:.06s;}
.yf-products-intro.yf-title-motion-ready .yf-products-rule{animation:yf-v50-rule-in .44s cubic-bezier(.16,1,.3,1) .15s both;}
.yf-products-intro.yf-title-motion-ready h2{animation:yf-v50-support-in .46s cubic-bezier(.16,1,.3,1) .19s both;}
.yf-products-intro.yf-title-motion-ready>p{animation:yf-v50-support-in .48s cubic-bezier(.16,1,.3,1) .24s both;}
@keyframes yf-v50-title-rise{0%{transform:translate3d(0,110%,0) skewY(4deg);opacity:.001}100%{transform:translate3d(0,0,0) skewY(0);opacity:1}}
@keyframes yf-v50-rule-in{0%{opacity:0;transform:scaleX(.08);transform-origin:left center}100%{opacity:1;transform:scaleX(1);transform-origin:left center}}
@keyframes yf-v50-support-in{0%{opacity:0;transform:translate3d(0,18px,0)}100%{opacity:1;transform:translate3d(0,0,0)}}

/* User-supplied fault-tolerant optics SVG. */
.pageCont li img[src$="fault-tolerant-optics.svg"]{display:block;width:100%;height:auto;max-width:none;}

@media(max-width:900px){
  .yf-section-heading{margin-top:116px;scroll-margin-top:116px;padding:34px 20px 28px;}
  .yf-section-heading h1{font-size:clamp(48px,15vw,82px);line-height:1;}
  .yf-section-heading-line{padding-top:.11em;margin-top:-.11em;}
}

@media(prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root),
  ::view-transition-old(yf-top-nav),::view-transition-new(yf-top-nav),
  ::view-transition-group(yf-nav-marker),::view-transition-group(yf-subnav-marker){animation-duration:.01ms!important;animation-iteration-count:1!important;}
  .yf-vt-fallback-panel{transition-duration:.01ms!important;}
  .yf-section-heading-inner,.yf-products-intro h1>span>.yf-title-line-inner,.yf-products-intro .yf-products-rule,.yf-products-intro h2,.yf-products-intro>p{animation:none!important;transition:none!important;transform:none!important;opacity:1!important;}
}
